Skip to content

La-Boleria, is a REST API, made to control one Bakery. It uses a PostgreSQL database to store users, cakes, and orders. It is here to show some more complex SQL querys, and their integration with an API.

Notifications You must be signed in to change notification settings

Klausdk1999/la-boleria

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

la-boleria

La-Boleria, is a REST API, made to control one Bakery. It uses a PostgreSQL database to store users, cakes, and orders. It is here to show some more complex SQL querys, and their integration with an API.

Documentation in Portuguese:

  • POST /cakes

    • Deve receber as informações necessárias para a criação de um novo tipo de bolo.
    {
    		"name": "Bolo de pote",
    		"price": 13.00,
        "image":"encurtador.com.br/iDIX0",
    		"description": "Bolo de chocolate com recheio de leite ninho"
    }
    • Response: status 201, sem dados.
    • Regras de negócio
      • name não pode ser vazio e deve conter pelo menos 2 caracteres ⇒ deve retornar status 400.
      • name não pode ser um nome de um bolo já existente ⇒ deve retornar status 409.
      • price não pode ser vazio e deve ser um valor maior que zero ⇒ deve retornar status 400.
      • description pode ser vazia e deve ser validado se é uma string ⇒ caso não seja deve retornar status 400.
      • image não pode ser vazio e deve ser um link válido (procurar por validação de link no Joi) ⇒ deve retornar status 422.
  • POST /clients

    • Deve receber as informações necessárias para a criação de um novo cliente.
    {
        "name": "Fulana",
        "address": "Rua tal",
        "phone": "2199999999"
    }
    • Response: status 201, sem dados.
    • Regras de negócio
      • name não pode ser vazio ⇒ deve retornar status 400.
      • address não pode ser vazio ⇒ deve retornar status 400.
      • phone não pode ser vazio e deve ser uma string com 10 ou 11 caracteres numéricos ⇒ nesse caso deve retornar status 400.
  • POST /order

    • Deve receber as informações necessárias para registrar um novo pedido.
    {
        "clientId": 1,
        "cakeId": 1,
        "quantity": 2,
        "totalPrice": 26.00
    }
    • Response: status 201, sem dados.
    • Regras de negócio
      • clientId deve ser um id de um cliente existente ⇒ caso não exista, retornar status 404.
      • cakeId deve ser um id de um bolo existente ⇒ caso não exista, retornar status 404.
      • quantity deve ser um inteiro maior que zero e menor que 5 ⇒ se não, retornar status 400.
      • OBS:** Lembre-se de adicionar o valor ao campo createdAt.
  • GET /orders

    • Deve retornar as informações dos pedidos.

    Exemplo de retorno:

    [
       {
    	    "client": {
    	        "id": 1,
    	        "name": "Fulana",
    	        "address": "Rua tal",
    	        "phone": "2199999999"
    	    },
    	    "cake": {
    					"id": 1
    	        "name": "Bolo de pote",
    	        "price": "13.00",
    					"description": "Bolo de chocolate com recheio de leite ninho",
    					"image": "encurtador.com.br/iDIX0"
    	    },
    			"orderId": 1,
    	    "createdAt": "2022-03-16 10:30",
    	    "quantity": 2,
    	    "totalPrice": 26.00
    		}
    ]
    • Regras de negócio
      • Pode receber uma query string date com o formato YYYY-MM-DD ⇒ nesse caso deve retornar apenas os pedidos da data especificada.
      • Caso não tenha nenhum pedido ⇒ deve retornar um array vazio com status 404.
      • Em caso de sucesso ⇒ deve retornar os dados conforme o exemplo com status 200.
  • GET /orders/:id

    • Deve retornar as informações do pedido com id específico, seguindo o formato abaixo.
    {
        "client": {
            "id": 1,
            "name": "Fulana",
            "address": "Rua tal",
            "phone": "2199999999"
        },
        "cake": {
    				"id": 1
            "name": "Bolo de pote",
            "price": "13.00",
    				"description": "Bolo de chocolate com recheio de leite ninho",
    				"image": "encurtador.com.br/iDIX0"
        },
    		"orderId": 1,
        "createdAt": "2022-03-16 10:30",
        "quantity": 2,
        "totalPrice": 26.00
    }
    • Regras de negócio
      • Se o id passado não existir ⇒ deve responder com status 404.
      • Em caso de sucesso ⇒ deve retornar as informações seguindo o formato do exemplo com status 200.
  • GET /clients/:id/orders

    • Deve retornar todos os pedidos de um determinado cliente.
    [
        {
            "orderId": 1,
            "quantity": 2,
            "createdAt": "2022-03-16 10:30",
            "totalPrice": 26.00,
            "cakeName": "Bolo de pote"
        }
    ]
    • Regras de negócio
      • Caso não exista um cliente com o id passado ⇒ deve retornar status 404.
      • Em caso de sucesso ⇒ deve retornar as informações seguindo o formato do exemplo com status 200.

About

La-Boleria, is a REST API, made to control one Bakery. It uses a PostgreSQL database to store users, cakes, and orders. It is here to show some more complex SQL querys, and their integration with an API.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published