Este repositório contem o Desafio de Backend - API de Marcação de Consultas, meu linkedin é Willian Alves Batista, e o contato/whatsApp é (27) 997366918.
- TypeScript;
- Node.js;
- Nest.js;
- Jwt;
- Class-validator;
- Bcrypt;
- Postgresql;
- Docker;
- Restful;
- eslint;
- vscode;
Descrição
Para iniciar o projeto, basta baixar ou clonar este repositório.
Acesse a raiz do projeto, abra o terminal, em seguida digite:
npm run start:docker
Descrição
Com o projeto em execução, o Swagger fica disponível em http://localhost:4000/api . Esta documentação da API permite visualizar de forma simples todos os endpoints, seus requisitos obrigatórios e suas respostas. Além disso, também é possível realizar testes.
Descrição
Observação: Com o projeto em execução, a API fica disponível em http://localhost:4000
Na raiz do projeto tem o arquivo Insomnia_2024-06-05.json para usar no Insomnia, assim facilita os testes na API.
POST /user
Rota para criar usuário.
corpo da requesição:
{
"email": "[email protected]",
"password": "P@ssw0rd",
"name": "Willian Alves Batista",
"cpf": "15784763222",
"dateBirth": "AAAA-MM-DD"
}
POST /login
Rota para obter o Token, que será necessário para as próximas requisições.
corpo da requesição:
{
"email": "[email protected]",
"password": "P@ssw0rd"
}
Observação: Todos os seguintes endpoints exigem um token para acesso.
POST /schedules
Rota para agendar consulta, após criada retorna o PDF com dados da consulta.
corpo da requesição:
{
"date": "AAAA-MM-DD",
"hours": "HH:MM:SS",
"medicalSpecialty": "Clínico geral"
}
GET /schedules
Rota para lista todas as consultas do usuário.
GET /schedules/pdf/:id
Rota para disponibilizar dados em PDF da consulta escolhida.
GET /schedules/:id
Rota para disponibilizar dados da consulta escolhida.
PATCH /schedules/:id
Rota para modificar data ou hora da consulta. É necessário fornecer ambos os valores no corpo da requisição, mesmo que não se pretenda modificar uma das opções, pois isso assegura um melhor time zone para o banco de dados.
corpo da requesição:
{
"date": "AAAA-MM-DD",
"hours": "HH:MM:SS"
}
DELETE /schedules/:id
Rota utilizada para cancelar uma consulta, na prática, excluindo a consulta agendada.