Skip to content

Talker Manager é um projeto focado em desenvolver uma API de cadastro e pesquisa de talkers utilizando operações CRUD (Create, Read, Update e Delete).

Notifications You must be signed in to change notification settings

MilenaSuzumura/project-talker-manager

Repository files navigation

Talker Manager

Talker Manager é um projeto focado em desenvolver uma API de cadastro e pesquisa de talkers utilizando operações CRUD (Create, Read, Update e Delete).

OBS: ESSE PROJETO FOI DESENVOLVIDO NA TRYBE.

Técnologias usadas

  • JavaScript;
  • Node.js;
  • Express.js;
  • Docker;
  • Higher Order Functions(HOF);
  • Nodemon;

Rotas, entradas e saídas

Endpoint GET /talker
Utilizado para retornar todos os palestrantes existentes no banco de dados.
Exemplo de entrada:
imagem-exemplo-entrada-get-talker
Exemplo de entrada:
imagem-exemplo-saida-get-talker
Endpoint GET /talker/:id
Utilizado para retornar o palestrante com o id correspondente no banco de dados.
Exemplo de entrada:
imagem-exemplo-entrada-correta-get-talker-id
Exemplo de saída:
imagem-exemplo-saida-correta-get-talker-id

Inserindo informações incorretas

Existem um cenário onde a saída acima pode não ser retornada: caso não exista a pessoa palestrante com aquele id.

Caso não exista a pessoa palestrante com aquele id no banco de dados, o retorno será:

{
  "message": "Pessoa palestrante não encontrada"
}
Endpoint POST /login
Utilizado para quando o usuário vai acessar sua conta. O banco de dados exige que o usuário insira o email e senha correta e irá retornar um token temporário como confirmação de que está correto.
Exemplo de entrada:
imagem-exemplo-entrada-correta-post-login
Exemplo de saída:
imagem-exemplo-saída-correta-post-login
Endpoint POST /talker
Utilizado para criar um novo palestrante. Para isso, necessita de um nome, idade, o dia que fez a palestra e avaliação. Também precisa de um token valido.
Informações necessárias:
  • name: É o nome e sobrenome. Deve ser enviado como string e o mínimo de caracters é 3. É obrigatório.
  • age: É a idade do palestrante. Deve ser enviado como int e o palestrante precisa ter, no mínimo, 18 anos. É obrigatório.
  • talk: É um objeto com informações da palestra. Dentro dele, deve conter o dia assistido e a avaliação. É obrigatório.
  • watchedAt: É o dia em que foi assistido a palestra. Essa informação deve estar no objeto talk e deve ser enviado como string contendo a data completa em formato dia/mês/ano. É obrigatório.
  • rate: É a avaliação da palestra. Essa informação deve estar no objeto talk e deve ser enviado como int com um número de 1 à 5. É obrigatório.
Exemplo de entrada:
imagem-exemplo-entrada-correta-post-talker
Exemplo de saída:
imagem-exemplo-saída-correta-post-talker

Inserindo informações incorretas

Existem quatro cenários onde a saída acima pode não ser retornada: caso não preencha os requisitos necessários(explicados nas Informações Necessárias acima), caso falte alguma das informações obrigatórias, se não tiver um token ou tendo um token inválido. Cada um deles terá uma mensagem diferente avisando o motivo de estar incorreta.

Exemplos caso não preencha os requisitos necessários:

{
  "message": "A pessoa palestrante deve ser maior de idade"
}
{
  "message": "O \"name\" deve ter pelo menos 3 caracteres"
}

Exemplo caso esteja faltando alguma das informações obrigatórias

{
  "message": "O campo \"age\" é obrigatório"
}

Exemplo caso não contenha o token:

{
  "message": "Token não encontrado"
}

Exemplo caso o token tenha expirado ou seja inválido:

{
  "message": "Token inválido"
}
Endpoint PUT /talker/:id
Utilizado para alterar as informações do palestrante com esse id. Para isso, necessita de um nome, idade, o dia que fez a palestra e avaliação, assim como o POST /talker. Também precisa de um token valido.
Informações necessárias:
  • name: É o nome e sobrenome. Deve ser enviado como string e o mínimo de caracters é 3. É obrigatório.
  • age: É a idade do palestrante. Deve ser enviado como int e o palestrante precisa ter, no mínimo, 18 anos. É obrigatório.
  • talk: É um objeto com informações da palestra. Dentro dele, deve conter o dia assistido e a avaliação. É obrigatório.
  • watchedAt: É o dia em que foi assistido a palestra. Essa informação deve estar no objeto talk e deve ser enviado como string contendo a data completa em formato dia/mês/ano. É obrigatório.
  • rate: É a avaliação da palestra. Essa informação deve estar no objeto talk e deve ser enviado como int com um número de 1 à 5. É obrigatório.
Exemplo de entrada:
imagem-exemplo-entrada-correta-put-talker-id
Exemplo de saída:
imagem-exemplo-saida-correta-put-talker-id

Inserindo informações incorretas

Existem quatro cenários onde a saída acima pode não ser retornada: caso não preencha os requisitos necessários(explicados nas Informações Necessárias acima), caso falte alguma das informações obrigatórias, se não tiver um token ou tendo um token inválido. Cada um deles terá uma mensagem diferente avisando o motivo de estar incorreta.

Exemplos caso não preencha os requisitos necessários:

{
  "message": "A pessoa palestrante deve ser maior de idade"
}
{
  "message": "O \"name\" deve ter pelo menos 3 caracteres"
}

Exemplo caso esteja faltando alguma das informações obrigatórias

{
  "message": "O campo \"age\" é obrigatório"
}

Exemplo caso não contenha o token:

{
  "message": "Token não encontrado"
}

Exemplo caso o token tenha expirado ou seja inválido:

{
  "message": "Token inválido"
}
Endpoint DELETE /talker/:id
Utilizado para deletar as informações do palestrante com esse id. Para isso, necessita de um token valido.

OBS: Não é necessário informações adicionais e nem retornará nada.

Inserindo informações incorretas

Existem dois cenários onde a saída será retornada: se não tiver um token ou tendo um token inválido. Cada um deles terá uma mensagem diferente avisando o motivo de estar incorreta.

Exemplo caso não contenha o token:

{
  "message": "Token não encontrado"
}

Exemplo caso o token tenha expirado ou seja inválido:

{
  "message": "Token inválido"
}
Endpoint GET /talker/search
Utilizado para para pesquisar o nome do palestrante. Para isso, necessita, caso o usuario queira, um nome, e de um token valido. Caso não seja mandado nenhum query, será retornado todos os palestrantes. E se for mandado um query e não tenha esse palestrante, será enviado um array vazio.
Nome que existe no banco de dados
Exemplo de entrada:
imagem-exemplo-entrada-correta-get-talker-search-Henrique
Exemplo de saída:
imagem-exemplo-saida-correta-get-talker-search-Henrique
Nome que não existe no banco de dados
Exemplo de entrada:
imagem-exemplo-entrada-correta-get-talker-search-Emanoela
Exemplo de saída:
imagem-exemplo-saida-correta-get-talker-search-Emanoela
Sem nomes na pesquisa
Exemplo de entrada:
imagem-exemplo-entrada-correta-get-talker-search
Exemplo de saída:
imagem-exemplo-saida-correta-get-talker-search

Inserindo informações incorretas

Existem dois cenários onde a saída será retornada: se não tiver um token ou tendo um token inválido. Cada um deles terá uma mensagem diferente avisando o motivo de estar incorreta.

Exemplo caso não contenha o token:

{
  "message": "Token não encontrado"
}

Exemplo caso o token tenha expirado ou seja inválido:

{
  "message": "Token inválido"
}

Utilizando o docker

Para criar os containers, execute: docker-compose up -d

Para abrir o terminar do container, execute: docker exec -it talker_manager bash

Instalando Dependências

npm install

Aplicação Node:

Para executar a aplicação e acessar as rotas, execute: npm start ou npm run dev

Executando Testes

Para rodar todos os testes:

npm test

Para rodar um teste específico:

npm test númeroDoTest

exemplo: npm test 1

OBS: OS TESTES FORAM DESENVOLVIDOS PELA TRYBE.

About

Talker Manager é um projeto focado em desenvolver uma API de cadastro e pesquisa de talkers utilizando operações CRUD (Create, Read, Update e Delete).

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published