O projeto PDV CodeXCode é um projeto focado em servir um sistema Ponto de Venda (PDV) para um negócio.
Esse documento delimita as funcionalidades, limitações e restrições do projeto, visando assim um melhor entendimento do escopo
O banco de dados a ser utilizado é o PostgreSQL
POST
/login
Essa rota retorna o token do usuário caso email e senha estejam corretos
Exemplo de retorno:
GET
/categoria
Essa rota retorna todas as categorias cadastradas no banco de dados.
As categorias a seguir são registradas previamente:
POST
/usuario
Essa rota é utilizada para criação dos usuários
O usuário deve ser informado no body no seguinte padrão:
O retorno será um objeto apenas com nome e email do usuário, por razões de segurança em nenhum momento a senha é retornada nas requisições.
GET
/usuario
Rota que detalha as informações do usuário logado
Exemplo de retorno:
PUT
/usuario
Rota para atualizar todas as informações do usuário
As informações devem ser informadas no corpo da requisição da seguinte forma:
GET
/cliente
Rota para listar todos os clientes
O retorno é um array com a lista dos clientes
GET
/cliente/:id
Rota para detalhar um cliente específico
O id é um parâmetro de rota que deve ser informado para encontrar o cliente, caso contrário serão listados todos os clientes cadastrados.
Exemplo de retorno:
POST
/cliente
Rota para cadastrar um cliente
No corpo da requisição os campos nome, email e cpf são obrigatórios os demais são extras porém não necessários.
Exemplo de retorno caso sejam informados apenas os campos obrigatórios:
Exemplo caso o campo cpf ou email já exista no banco de dados:
PUT
/cliente/:id
Rota para atualizar os dados do cliente
Com exceção do cpf,nome e email, informar os outros dados não é obrigatório. Os dados que não forem informados não serão atualizados e permanecerão com
o valor antigo.
POST
/produto
Rota para cadastrar novos produtos.
Exemplo do corpo da requisição:
GET
/produto
Rota para listar os produtos cadastrados.
O retorno dessa rota será sempre um array com os produtos cadastrados, caso não exista nenhum produto será um array vazio
GET
/produto/:id
Rota para detalhar um produto específico.
O retorno será sempre um o produto como um objeto, caso exista produto com o id informado. Exemplo:
Caso não exista um produto com o id informado o retorno será o seguinte:
Caso o id não seja um número válido:
PUT
/produto/:id
Rota para atualizar os dados do produto.
O corpo da requisição será semelhante ao do endpoint de cadastro de produto. O id devera ser informado como parâmetro de rota.
não há retorno no corpo da resposta (caso a operação tenha sido bem sucedida)
exemplos de erro:
DELETE
/produto/:id
Rota para deletar um produto com base no id informado.
Não há retorno no corpo da resposta caso o produto seja excluído com sucesso.
exemplos de erro:
A aplicação estará rodando na url https://vast-teal-yak-hem.cyclic.app/, lá será possível testar os endpoints.