🌹
Rosemary_API
💀
Projeto final de módulo (IV) do curso de Web Dev Full Stack da Resilia Educação.
Projeto realizado utilizando o Node.js com framework Express.
🎯
Objetivo
Esse projeto tem como objetivo criar uma API REST para uma entidade (agenda) de um estúdio de tatuagem, onde deve ser possível aplicar as operações de CRUD.
📝
Pré-Requisitos
🎁
Pacotes utilizados
Dependências de produção:
Dependências de desenvolvimento:
💻
Instalação da Aplicação
Abra o terminal/Powershell e rode os comandos abaixo:
Clonando o repositório:
git clone https://github.com/LeoAChaves/Rosemary_API.git
Entrando na pasta:
cd Rosemary_API
Instalando os pacotes necessários:
npm install
Criando e populando banco de dados:
npm run database
Iniciando o servidor:
npm start
📌
Rotas implementadas
- GET /agenda
Retorna todos os agendamentos realizados;
Schema da resposta:
{
"agenda": [
{
"ID": <number>,
"Cliente_ID": <number>,
"Funcionario_ID": <number>,
"Data": "YYYY-MM-DD",
"Hora": "HH:MM:SS",
"Servico": <string>,
"Duracao": <number>
}
],
"error": <boolean>
}
- GET /agenda/cliente/{Cliente_ID}
Retorna todos os agendamentos de um determinado cliente.
Schema da resposta:
{
"agenda": [
{
"ID": <number>,
"Cliente_ID": {Cliente_ID},
"Funcionario_ID": <number>,
"Data": "YYYY-MM-DD",
"Hora": "HH:MM:SS",
"Servico": <string>,
"Duracao": <number>
}
],
"error": <boolean>
}
- GET /agenda/funcionario/{Funcionario_ID}
Retorna todos os agendamentos de um determinado funcionario.
Schema da resposta:
{
"agenda": [
{
"ID": <number>,
"Cliente_ID": <number>,
"Funcionario_ID": {Funcionario_ID},
"Data": "YYYY-MM-DD",
"Hora": "HH:MM:SS",
"Servico": <string>,
"Duracao": <number>
}
],
"error": <boolean>
}
- GET /agenda/data/{Data}
Retorna todos os agendamentos em uma determinada data (O formato para a data deve ser: "YYYY-MM-DD").
Schema da resposta:
{
"agenda": [
{
"ID": <number>,
"Cliente_ID": <number>,
"Funcionario_ID": <number>,
"Data": {Data},
"Hora": "HH:MM:SS",
"Servico": <string>,
"Duracao": <number>
}
],
"error": <boolean>
}
- POST /agenda
Insere um novo agendamento no banco de dados.
Schema da requisição:
{
"Cliente_ID": <number>,
"Funcionario_ID": <number>,
"Data": "YYYY-MM-DD",
"Hora": "HH:MM:SS",
"Servico": <string>,
"Duracao": <number>
}
Schema da resposta:
{
"message": "Novo agendamento criado com sucesso. Data:{Data}, Hora:{Hora}",
"agenda": {
"Cliente_ID": <number>,
"Funcionario_ID": <number>,
"Data": "YYYY-MM-DD",
"Hora": "HH:MM:SS",
"Servico": <string>,
"Duracao": <number>
},
"error": <boolean>
}
- PUT /agenda/id/{ID}
Atualiza um determinado agendamento no banco de dados.
Schema da requisição:
{
"Cliente_ID": <number>,
"Funcionario_ID": <number>,
"Data": "YYYY-MM-DD",
"Hora": "HH:MM:SS",
"Servico": <string>,
"Duracao": <number>
}
Schema da resposta:
{
"message": "Agendamento de ID {ID} atualizado com sucesso",
"agendamento": {
"Cliente_ID": <number>,
"Funcionario_ID": <number>,
"Data": "YYYY-MM-DD",
"Hora": "HH:MM:SS",
"Servico": <string>,
"Duracao": <number>
},
"error": <boolean>
}
- DELETE /agenda/id/{ID}
Deleta um determinado agendamento do banco de dados.
Schema da resposta:
{
"agenda": "Agendamento de ID {ID} deletado com sucesso",
"error": <boolean>
}
🔬
Testes
Para excetutar os testes, basta inserir o comando:
npm run test
🌱
Desenvolvido por
Leonardo de Almeida Chaves