Skip to content

CodeGirls-LuizaCode/backend

Repository files navigation

Desafio Final Luiza Code - Omni Channel

📕 Índice


Sobre

📡 Desenvolvimento de um serviço HTTP resolvendo a funcionalidade de Omni Channel do cliente.

Tecnologias


Iniciando

Pré-requisitos

  • Node JS

    https://nodejs.org/en/
  • Npm ou Yarn

    https://www.npmjs.com/

Instalação

  1. Clonar o repositório:

    git clone https://github.com/CodeGirls-LuizaCode/backend.git
  2. Instalar os pacotes:

    npm install

Uso

1 - Para usar e testar a API, você precisa importar o arquivo db.sql da pasta ./db_postgres no Postgres.

2 - Alterar no arquivo ./config/database.js seu usuário e senha do banco de dados:

3 - Subir o servidor:

npm start

4 - Rodar os testes conforme indicado abaixo.

Testes

Com a API em funcionamento, vamos rodar os testes que foram pedidos para o desafio via Insomnia (ou algum similar). Os endpoints obrigatórios estão em destaque. Seguem os testes:

Endpoint Operação HTTP Explicação Teste
/usuarios POST Recebe um JSON com dados de um usuário e o inclui na base de dados. http://localhost:3000/usuarios

Enviar no body por JSON: (exemplo)
{
"nome":"Ana Maria Lopes",
"email":"amlopes@gmail.com",
"cpf":"354.785.894-53",
"data_nascimento":"1998-07-10",
"senha":"12345",
"EnderecoId": 3
}

Retorna a frase: Usuário cadastrado com sucesso!
Objeto enviado com alguma informação faltando (ex: sem cpf):
retorna um status HTTP 400 - Bad Request.
/usuarios/login POST Recebe um JSON com dados de login. http://localhost:3000/usuarios/login

Enviar no body por JSON: (exemplo)
{
"email": "amlopes@gmail.com",
"senha": "12345"
}

Retorna a frase: Login efetuado com sucesso
Objeto enviado com alguma informação errada:
retorna um status HTTP 400 - Bad Request.
Caso o usuário não possua cadastro: Retonar HTTP 404 - Not Found.
/usuarios/:id PUT Recebe um JSON com dados para a atualização do usuário de acordo com o exemplo mostrado no cadastro. http://localhost:3000/usuarios/:id

Retorna a frase: Usuário atualizado com sucesso!
Na atualização de usuário o CPF não pode ser alterado, pois é um valor único.
Caso haja mudança de CPF o banco irá ignorar a requisição e manterá o valor do CPF inserido no cadastro.
/usuarios GET Retorna todos os usuários cadastrados no banco. http://localhost:3000/usuarios
/usuarios/:id DELETE Remove o usuário referente ao ID inserido na URL. http://localhost:3000/usuarios/:id

Retorna a frase: Usuário deletado com sucesso!
/listas GET Retorna todas as compras do banco em detalhes. http://localhost:3000/listas
/listas/compras/:usuarioId GET Retorna todas as compras finalizadas do usuário identificado no ID da URL. http://localhost:3000/listas/compras/:usuarioId
/listas/carrinho/:usuarioId GET Retorna todas as compras não finalizadas do usuário identificado no ID da URL. http://localhost:3000/listas/carrinho/:usuarioId
/listas POST Adiciona um produto à lista de compras do cliente. http://localhost:3000/listas

Enviar no body por JSON: (exemplo)
{
"ProdutoId": 5,
"UsuarioId": 4
}

Retorna a frase: Produto adicionado a lista
Objeto enviado com alguma informação faltando (ex: sem o ID do produto): retorna um status HTTP 400 - Bad Request.
Lembrando: Só é possível adicionar um produto de cada tipo por lista.
/listas/:listaId DELETE Remove um produto da lista de compras do cliente. http://localhost:3000/listas/:listaId

Retorna a frase: Produto removido da lista de compras!
Caso haja a tentativa de remover um produto de uma lista já finalizada retornará a mensagem: Não é possível excluir produtos de uma compra finalizada!
/listas/finalizar-lista POST Finaliza a lista de compras do cliente. http://localhost:3000/listas/finalizar-lista

Enviar no body por JSON: (exemplo)
{
"UsuarioId": 3,
"LojaId": 3
}

Retorna o número do pedido, valor total da compra e a frase: Lista finalizada com sucesso
/listas/entrega POST Registra a retirada do pedido. http://localhost:3000/listas/listas/entrega

Enviar no body por JSON: (exemplo)
{
"numero_pedido": "25489"
}

Retorna a mensagem: Produto foi retirado na loja(caso o cliente tenha passado o Id da loja física no ato da finalização da lista de compras) ou Produto foi entregue na casa do cliente (caso não tenha passado Id de loja física.).
/lojas GET Retorna os detalhes de todas as lojas físicas disponíveis para retirada do produto. http://localhost:3000/lojas
/produtos GET Retorna os detalhes de todos os produtos existentes no banco. http://localhost:3000/produtos
/produtos/:produtoId GET Retorna os detalhes de um produto específico identificado na URL. http://localhost:3000/produtos/:produtoId
/categorias GET Retorna todas as categorias existentes no banco. http://localhost:3000/categorias

👨🏽‍🚀 Deploy

Heroku:

Code Girls

Contatos

Célia Lopes - Linkedin - oliveira.lopes.celia@gmail.com
Islene Gomes - Linkedin - islenegomes@gmail.com
Laoma Nogueira - Linkedin - laomanogueira@gmail.com
Milena Maganin - Linkedin - mimaganin@gmail.com
Sabrynna Lourenço - Linkedin - limasabrynna03@gmail.com
Thaís Minas - Linkedin - thais.2929@gmail.com

Link do projeto: https://github.com/CodeGirls-LuizaCode/backend

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 6