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.
- JavaScript;
- Node.js;
- Express.js;
- Docker;
- Higher Order Functions(HOF);
- Nodemon;
Endpoint GET /talker/:id
Utilizado para retornar o palestrante com o id correspondente no banco de dados.
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.
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.
- 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.
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.
- 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.
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.
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.
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"
}
Para criar os containers, execute: docker-compose up -d
Para abrir o terminar do container, execute: docker exec -it talker_manager bash
npm install
Para executar a aplicação e acessar as rotas, execute: npm start
ou npm run dev
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.