Skip to content

Api designed to orchestrate a marketplace and dashboard for Solid Control, a logistics operations management application.

Notifications You must be signed in to change notification settings

rich-dacan/solid-control-api

 
 

Repository files navigation

Solid Control ⚓

Documentação da API

A URL base da aplicação: https://solid-control-api.herokuapp.com/

Tabela de Conteúdos:


1. Visão Geral

Tecnologias usadas:


2. Diagrama ER

Voltar para o topo

Diagrama ER da API definindo bem as relações entre as tabelas do banco de dados.

DER


3. Início Rápido

Voltar para o topo

3.1. Instalando Dependências

Clone o projeto em sua máquina e instale as dependências com o comando:

yarn

3.2. Variáveis de Ambiente

Em seguida, crie um arquivo .env, copiando o formato do arquivo .env.example:

cp .env.example .env

Configure suas variáveis de ambiente com suas credenciais do Postgres e uma nova database da sua escolha.

3.3. Migrations

Execute as migrations com o comando:

yarn typeorm migration:run -d src/data-source.ts

5. Endpoints

Voltar para o topo

Índice


5.1 Users

Users é a tabela responsavel por armazenar os dados de todos os usuarios.

Name Description Type
name Nome string
email Email de cadastro string
street Rua / Avenida / Travessa ou Viela string
number Numero nuimber
complement Complemento String
state Estado string
city cidade string
zip_code Codigo postal string
id Identificador uuid string

POST /users/register

Para criarmos um novo usuario.

Corpo da requisição.

{
	"name": "Rafhael Mallorga",
	"email": "[email protected]",
	"street": "Rua rua",
	"number": 123,
	"complement": "casa",
	"state": "SP",
	"city": "Sao Paulo",
	"zip_code": "12345678",
	"password": "123456"
}

Resposta da requisição.

Obs: O carrinho é criado automaticamente na criação do usuario.

{
	"name": "Rafhael",
	"email": "[email protected]",
	"number": 1020,
	"street": "São Lara",
	"complement": "casa",
	"state": "SP",
	"zip_code": "13245788",
	"city": "Itapira",
	"cart": {
		"id": "761e3d3a-ee9e-4b60-9eab-a8b108e88b9a",
		"subtotal": 0
	},
	"id": "c6a96b4c-beaf-4304-aaa0-2f9c016eb213",
	"isAdm": false,
	"active": true,
	"created_at": "2022-07-20T15:39:16.568Z",
	"updated_at": "2022-07-20T15:39:16.568Z"
}

POST /users/login

Corpo da requisição para realiarmos o login.

{
	"email": "[email protected]",
	"password": "123456"
}

Resposta do login.

{
	"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImM2YTk2YjRjLWJlYWYtNDMwNC1hYWEwLTJmOWMwMTZlYjIxMyIsImVtYWlsIjoicmFmaGFlbEB0ZXN0ZS5jb20iLCJpc0FkbSI6dHJ1ZSwiaWF0IjoxNjU4MzIwOTA4LCJleHAiOjE2NTgzNjQxMDh9.6siaAt0VyoOwvkXR2k5-A4Ux_9jx3YPyHQUdHFh2MG4"
}

GET /users

Lista todos os usuarios cadastrados.

[
	{
		"id": "c6a96b4c-beaf-4304-aaa0-2f9c016eb213",
		"name": "Rafhael",
		"email": "[email protected]",
		"isAdm": true,
		"active": true,
		"number": "1020",
		"street": "São Lara",
		"complement": "casa",
		"created_at": "2022-07-20T15:39:16.568Z",
		"updated_at": "2022-07-20T15:41:28.474Z",
		"state": "SP",
		"zip_code": "13245788",
		"city": "Itapira",
		"cart": {
			"id": "761e3d3a-ee9e-4b60-9eab-a8b108e88b9a",
			"subtotal": 0,
			"products": []
		}
	}
]

GET /users/:user_id

Lê um usuario específico informando o seu id na url.

{
	"id": "c6a96b4c-beaf-4304-aaa0-2f9c016eb213",
	"name": "Rafhael",
	"email": "[email protected]",
	"isAdm": true,
	"active": true,
	"number": "1020",
	"street": "São Lara",
	"complement": "casa",
	"created_at": "2022-07-20T15:39:16.568Z",
	"updated_at": "2022-07-20T15:41:28.474Z",
	"state": "SP",
	"zip_code": "13245788",
	"city": "Itapira",
	"cart": {
		"id": "761e3d3a-ee9e-4b60-9eab-a8b108e88b9a",
		"subtotal": 0,
		"products": []
	}
}

PATCH /users

Permite atualizar os dados cadastrais do usuario. Não é necessário passar o id do usuario que será atualizado, pois isto é feito através do token.

Exemplo de corpo da requisicao.

{
	"name": "Joao dos Santos"
}

DELETE /providers/:provider_id

Permite deletar o usuario. Não é necessário passar o id do usuario que será deletado, pois isto é feito através do token.

5.2 Cart

Cart é a tabela responsavel por armazenar os dados de todos os produtos no carrinho do usuario. Nao é necessario passar nada do corpo da requisição, bastando apenas enviar o id do produto na URL.


POST /cart/:product_id

Resposta da requisição.

{
	"id": "761e3d3a-ee9e-4b60-9eab-a8b108e88b9a",
	"subtotal": 3,
	"products": [
		{
			"id": "c3b47c1d-f48e-4f3d-be83-957f024ae86b",
			"name": "Coca Cola 3 Litros",
			"price": "3.00",
			"img": "https://apoioentrega.vteximg.com.br/arquivos/ids/452238/88434.jpg?v=637105354224830000",
			"supplies": [
				{
					"id": "9e516248-54a9-4c65-b75f-46b6e6e8f3cb",
					"name": "Coca-Cola 3l",
					"buy_price": "2.50",
					"qtd": null,
					"provider": [
						{
							"id": "2c18c9c3-f98a-435c-8a41-8a1479193869",
							"fantasy_name": "Coca Cola",
							"name": "Coca Cola Inc",
							"cnpj": "12345678901234",
							"ie": "123456789",
							"street": "Rua do Bairro",
							"number": 234,
							"complement": "Industria",
							"district": "Bairro da Cidade",
							"city": "Cidade do Estado",
							"state": "SP",
							"country": "Brasil",
							"zip_code": "02758-090"
						}
					]
				}
			]
		}
	]
}

GET /cart

Lista todos os produtos no carrinho do usuario atraves do token.

{
	"id": "761e3d3a-ee9e-4b60-9eab-a8b108e88b9a",
	"subtotal": 3,
	"products": [
		{
			"id": "c3b47c1d-f48e-4f3d-be83-957f024ae86b",
			"name": "Coca Cola 3 Litros",
			"price": "3.00",
			"img": "https://apoioentrega.vteximg.com.br/arquivos/ids/452238/88434.jpg?v=637105354224830000",
			"supplies": [
				{
					"id": "9e516248-54a9-4c65-b75f-46b6e6e8f3cb",
					"name": "Coca-Cola 3l",
					"buy_price": "2.50",
					"qtd": null,
					"provider": [
						{
							"id": "2c18c9c3-f98a-435c-8a41-8a1479193869",
							"fantasy_name": "Coca Cola",
							"name": "Coca Cola Inc",
							"cnpj": "12345678901234",
							"ie": "123456789",
							"street": "Rua do Bairro",
							"number": 234,
							"complement": "Industria",
							"district": "Bairro da Cidade",
							"city": "Cidade do Estado",
							"state": "SP",
							"country": "Brasil",
							"zip_code": "02758-090"
						}
					]
				}
			]
		}
	]
}

DELETE /cart/:product_id

Para remover um item do carrinho basta enviar o ID do produto na URL.


5.3 Ticket

Ticket é a tabela responsavel por gerar o pedido do usuario com os itens cadastrados anteriormente no carrinho.


POST /ticket

Para criarmos um novo ticket basta realizar o post com o token do usuario que a API é a responsavel por localizar o carrinho e gerar o novo ticket.

Resposta da requisição.

{
	"user": {
		"id": "c6a96b4c-beaf-4304-aaa0-2f9c016eb213",
		"name": "Rafhael dos Santos Mallorga",
		"email": "[email protected]",
		"password": "$2b$10$064vXthA.Ls1Y6K93X/10uvobpVP00MiRqlXTsZfDs7yIltyomdkm",
		"isAdm": true,
		"active": true,
		"number": "1020",
		"street": "São Lara",
		"complement": "casa",
		"created_at": "2022-07-20T15:39:16.568Z",
		"updated_at": "2022-07-20T20:12:21.171Z",
		"state": "SP",
		"zip_code": "13245788",
		"city": "Itapira",
		"cart": {
			"id": "761e3d3a-ee9e-4b60-9eab-a8b108e88b9a",
			"subtotal": 3,
			"products": [
				{
					"id": "c3b47c1d-f48e-4f3d-be83-957f024ae86b",
					"name": "Coca Cola 3 Litros",
					"price": "3.00",
					"img": "https://apoioentrega.vteximg.com.br/arquivos/ids/452238/88434.jpg?v=637105354224830000",
					"supplies": [
						{
							"id": "9e516248-54a9-4c65-b75f-46b6e6e8f3cb",
							"name": "Coca-Cola 3l",
							"buy_price": "2.50",
							"qtd": null,
							"provider": [
								{
									"id": "2c18c9c3-f98a-435c-8a41-8a1479193869",
									"fantasy_name": "Coca Cola",
									"name": "Coca Cola Inc",
									"cnpj": "12345678901234",
									"ie": "123456789",
									"street": "Rua do Bairro",
									"number": 234,
									"complement": "Industria",
									"district": "Bairro da Cidade",
									"city": "Cidade do Estado",
									"state": "SP",
									"country": "Brasil",
									"zip_code": "02758-090"
								}
							]
						}
					]
				}
			]
		}
	},
	"products": [
		{
			"id": "c3b47c1d-f48e-4f3d-be83-957f024ae86b",
			"name": "Coca Cola 3 Litros",
			"price": "3.00",
			"img": "https://apoioentrega.vteximg.com.br/arquivos/ids/452238/88434.jpg?v=637105354224830000",
			"supplies": [
				{
					"id": "9e516248-54a9-4c65-b75f-46b6e6e8f3cb",
					"name": "Coca-Cola 3l",
					"buy_price": "2.50",
					"qtd": null,
					"provider": [
						{
							"id": "2c18c9c3-f98a-435c-8a41-8a1479193869",
							"fantasy_name": "Coca Cola",
							"name": "Coca Cola Inc",
							"cnpj": "12345678901234",
							"ie": "123456789",
							"street": "Rua do Bairro",
							"number": 234,
							"complement": "Industria",
							"district": "Bairro da Cidade",
							"city": "Cidade do Estado",
							"state": "SP",
							"country": "Brasil",
							"zip_code": "02758-090"
						}
					]
				}
			]
		}
	],
	"total": 3,
	"id": "4ea799b1-ea09-43f7-9f60-20857435622f"
}

GET /ticket

Lista todos os pedidos cadastrados do usuario.

[
	{
		"id": "4ea799b1-ea09-43f7-9f60-20857435622f",
		"total": 3,
		"products": [
			{
				"id": "c3b47c1d-f48e-4f3d-be83-957f024ae86b",
				"name": "Coca Cola 3 Litros",
				"price": "3.00",
				"img": "https://apoioentrega.vteximg.com.br/arquivos/ids/452238/88434.jpg?v=637105354224830000",
				"supplies": [
					{
						"id": "9e516248-54a9-4c65-b75f-46b6e6e8f3cb",
						"name": "Coca-Cola 3l",
						"buy_price": "2.50",
						"qtd": null,
						"provider": [
							{
								"id": "2c18c9c3-f98a-435c-8a41-8a1479193869",
								"fantasy_name": "Coca Cola",
								"name": "Coca Cola Inc",
								"cnpj": "12345678901234",
								"ie": "123456789",
								"street": "Rua do Bairro",
								"number": 234,
								"complement": "Industria",
								"district": "Bairro da Cidade",
								"city": "Cidade do Estado",
								"state": "SP",
								"country": "Brasil",
								"zip_code": "02758-090"
							}
						]
					}
				]
			}
		]
	}
]

5.4 Provider

Todas as rotas do workflow do produto são acessadas apenas por administradores.

Provider é a tabela responsável por armazenar nossos fornecedores, o fornecedor é o primeiro cadastro obrigatório para o workflow do produto em nossa API, sem ele não será possível o relacionamento do Supply.

Name Description Type
fantasy_name Nome fantasia string
name Nome string
cnpj Cadastro Nacional de Pessoa Juridica string
ie Inscricao estadual string
street Rua / Avenida / Travessa ou Viela string
number Numero nuimber
complement Complemento String
district Bairro / Distrito string
city cidade string
state Estado string
country Pais string
zip_code Codigo postal string
id Identificador uuid string

POST /providers

Corpo da requisição, sendo o “complement” opcional.

{
	"fantasy_name": "Coca Cola",
	"name": "Coca Cola Inc",
	"cnpj": "12345678901234",
	"ie": "123456789",
	"street": "Rua do Bairro",
	"number": 234,
	"complement":"Industria",
	"district": "Bairro da Cidade",
	"city": "Cidade do Estado",
	"state": "SP",
	"country":"Brasil",
	"zip_code": "02758-090"
}

GET /providers

Lista todos os fornecedores cadastrados.

[
  {
    "id": "2a6a154c-a4c3-4248-bc6c-5d98e742f71f",
    "fantasy_name": "Coca Cola",
    "name": "Coca Cola Inc",
    "cnpj": "12345678901234",
    "ie": "123456789",
    "street": "Rua do Bairro",
    "number": 234,
    "complement": "Industria",
    "district": "Bairro da Cidade",
    "city": "Cidade do Estado",
    "state": "SP",
    "country": "Brasil",
    "zip_code": "02758-090"
  }
]

GET /providers/:provider_id

Lê um fornecedor específico informando o seu id na url.

  {
    "id": "2a6a154c-a4c3-4248-bc6c-5d98e742f71f",
    "fantasy_name": "Coca Cola",
    "name": "Coca Cola Inc",
    "cnpj": "12345678901234",
    "ie": "123456789",
    "street": "Rua do Bairro",
    "number": 234,
    "complement": "Industria",
    "district": "Bairro da Cidade",
    "city": "Cidade do Estado",
    "state": "SP",
    "country": "Brasil",
    "zip_code": "02758-090"[
	{
		"id": "2df65ff8-171e-4c62-ac3f-37930bf24c81",
		"total_price": "400.00",
		"status": "Finalizado",
		"supplies": [
			{
				"id": "e00d84f8-73ee-4c5f-bcde-cd328d224722",
				"name": "Coca-Cola 2l",
				"buy_price": "1.50",
				"qtd": null,
				"provider": [
					{
						"id": "2c18c9c3-f98a-435c-8a41-8a1479193869",
						"fantasy_name": "Coca Cola",
						"name": "Coca Cola Inc",
						"cnpj": "12345678901234",
						"ie": "123456789",
						"street": "Rua do Bairro",
						"number": 234,
						"complement": "Industria",
						"district": "Bairro da Cidade",
						"city": "Cidade do Estado",
						"state": "SP",
						"country": "Brasil",
						"zip_code": "02758-090"
					}
				]
			},
			{
				"id": "9e516248-54a9-4c65-b75f-46b6e6e8f3cb",
				"name": "Coca-Cola 3l",
				"buy_price": "2.50",
				"qtd": null,
				"provider": [
					{
						"id": "2c18c9c3-f98a-435c-8a41-8a1479193869",
						"fantasy_name": "Coca Cola",
						"name": "Coca Cola Inc",
						"cnpj": "12345678901234",
						"ie": "123456789",
						"street": "Rua do Bairro",
						"number": 234,
						"complement": "Industria",
						"district": "Bairro da Cidade",
						"city": "Cidade do Estado",
						"state": "SP",
						"country": "Brasil",
						"zip_code": "02758-090"
					}
				]
			}
		],
		"provider": {
			"id": "2c18c9c3-f98a-435c-8a41-8a1479193869",
			"fantasy_name": "Coca Cola",
			"name": "Coca Cola Inc",
			"cnpj": "12345678901234",
			"ie": "123456789",
			"street": "Rua do Bairro",
			"number": 234,
			"complement": "Industria",
			"district": "Bairro da Cidade",
			"city": "Cidade do Estado",
			"state": "SP",
			"country": "Brasil",
			"zip_code": "02758-090"
		}
	}
]

PATCH /providers/:provider_id

Permite atualizar os dados cadastrais do fornecedor. Exemplo de corpo da requisicao.

  {

    "name": "Coca Cola Inc"

  }

DELETE /providers/:provider_id

Permite deletar um fornecedor do nosso banco de dados passando seu id na url.provider

5.5 Supply

A tabela Supply é responsável por armazenar todos os nossos suprimentos / ingredientes. Ela possui uma relação com os fornecedores que possuem estes materiais para compra.

Name Description Type
name Nome do suprimento / ingrediente string
buy_price Preço de compra number
provider Array das empresas que fornecem este item array
id Identificador uuid string

POST /supply

Corpo da requisição para a criação do suprimento / ingrediente.

{
	"name": "Coca-Cola 3l",
	"buy_price": 2.5,
	"provider_id": "2a6a154c-a4c3-4248-bc6c-5d98e742f71f"
}

Resposta da requisição.

{
	"name": "Coca-Cola 3l",
	"buy_price": 2.5,
	"provider": [
		{
			"id": "2a6a154c-a4c3-4248-bc6c-5d98e742f71f",
			"fantasy_name": "Coca-Cola",
			"name": "Coca Cola Inc",
			"cnpj": "12345678901234",
			"ie": "123456789",
			"street": "Rua do Bairro",
			"number": 234,
			"complement": "Industria",
			"district": "Bairro da Cidade",
			"city": "Cidade do Estado",
			"state": "SP",
			"country": "Brasil",
			"zip_code": "02758-090"
		}
	],
	"id": "2aca79a2-0d68-4890-9228-24c17fa4fea7"
}

GET /supply

Lista todos os ingredientes / suprimentos cadastrados em nosso banco de dados.

Corpo da resposta:

[
	{
		"id": "d7fc0b05-05e0-471f-a675-acb51df99bc2",
		"name": "Coca-Cola 2l",
		"buy_price": "1.50",
		"provider": [
			{
				"id": "2a6a154c-a4c3-4248-bc6c-5d98e742f71f",
				"fantasy_name": "Coca-Cola",
				"name": "Coca Cola Inc",
				"cnpj": "12345678901234",
				"ie": "123456789",
				"street": "Rua do Bairro",
				"number": 234,
				"complement": "Industria",
				"district": "Bairro da Cidade",
				"city": "Cidade do Estado",
				"state": "SP",
				"country": "Brasil",
				"zip_code": "02758-090"
			}
		]
	},
	{
		"id": "2aca79a2-0d68-4890-9228-24c17fa4fea7",
		"name": "Coca-Cola 3l",
		"buy_price": "2.50",
		"provider": [
			{
				"id": "2a6a154c-a4c3-4248-bc6c-5d98e742f71f",
				"fantasy_name": "Coca-Cola",
				"name": "Coca Cola Inc",
				"cnpj": "12345678901234",
				"ie": "123456789",
				"street": "Rua do Bairro",
				"number": 234,
				"complement": "Industria",
				"district": "Bairro da Cidade",
				"city": "Cidade do Estado",
				"state": "SP",
				"country": "Brasil",
				"zip_code": "02758-090"
			}
		]
	}
]

GET /supply/:supply_id

Lê um ingrediente / suprimento específico informando o seu id na url.

{
	"id": "d7fc0b05-05e0-471f-a675-acb51df99bc2",
	"name": "Coca-Cola 350ml",
	"buy_price": "1.50",
	"provider": [
		{
			"id": "2a6a154c-a4c3-4248-bc6c-5d98e742f71f",
			"fantasy_name": "Coca-Cola",
			"name": "Coca Cola Inc",
			"cnpj": "12345678901234",
			"ie": "123456789",
			"street": "Rua do Bairro",
			"number": 234,
			"complement": "Industria",
			"district": "Bairro da Cidade",
			"city": "Cidade do Estado",
			"state": "SP",
			"country": "Brasil",
			"zip_code": "02758-090"
		}
	]
}

PATCH /supply/:supply_id

Permite atualizar os dados cadastrais do suprimento / ingrediente. Corpo da requisicao.

{
	"name": "Coca-Cola 2l"
}

DELETE /supply/:supply_id

Permite deletar um suprimento / ingrediente do nosso banco de dados passando o id na url.


5.6 Orders

A tabela Orders é a responsável por armazenar todos os nossos pedidos de compra de ingredientes ou suprimentos junto aos nossos fornecedores.

Name Description Type
supplies [ ] Lista de itens da O.C.: {"id":"id do supply", "qtd": 100 } Array de objetos
provider_id Id do fornecedor referente a O.C. string
status Andamento da ordem de compra. string

POST /orders

Corpo da requisicao.

Obs.: Caso algum dos suprimentos / ingredientes ja exista em nosso estoque e o status da ordem for igual a "Finalizado" a quantidade total será atualizada.

{
	"supplies": [
		{"id": "d7fc0b05-05e0-471f-a675-acb51df99bc2", "qtd": 100},
		{"id": "2aca79a2-0d68-4890-9228-24c17fa4fea7", "qtd": 100}
	],
	"provider_id": "2a6a154c-a4c3-4248-bc6c-5d98e742f71f",
	"status": "Finalizado"
}

Resposta da requisição.

{
	"total_price": "400.00",
	"status": "Finalizado",
	"supplies": [
		{
			"id": "d7fc0b05-05e0-471f-a675-acb51df99bc2",
			"name": "Coca-Cola 2l",
			"buy_price": "1.50",
			"qtd": 100,
			"provider": [
				{
					"id": "2a6a154c-a4c3-4248-bc6c-5d98e742f71f",
					"fantasy_name": "Coca-Cola",
					"name": "Coca Cola Inc",
					"cnpj": "12345678901234",
					"ie": "123456789",
					"street": "Rua do Bairro",
					"number": 234,
					"complement": "Industria",
					"district": "Bairro da Cidade",
					"city": "Cidade do Estado",
					"state": "SP",
					"country": "Brasil",
					"zip_code": "02758-090"
				}
			]
		},
		{
			"id": "2aca79a2-0d68-4890-9228-24c17fa4fea7",
			"name": "Coca-Cola 3l",
			"buy_price": "2.50",
			"qtd": 100,
			"provider": [
				{
					"id": "2a6a154c-a4c3-4248-bc6c-5d98e742f71f",
					"fantasy_name": "Coca-Cola",
					"name": "Coca Cola Inc",
					"cnpj": "12345678901234",
					"ie": "123456789",
					"street": "Rua do Bairro",
					"number": 234,
					"complement": "Industria",
					"district": "Bairro da Cidade",
					"city": "Cidade do Estado",
					"state": "SP",
					"country": "Brasil",
					"zip_code": "02758-090"
				}
			]
		}
	],
	"provider": {
		"id": "2a6a154c-a4c3-4248-bc6c-5d98e742f71f",
		"fantasy_name": "Coca-Cola",
		"name": "Coca Cola Inc",
		"cnpj": "12345678901234",
		"ie": "123456789",
		"street": "Rua do Bairro",
		"number": 234,
		"complement": "Industria",
		"district": "Bairro da Cidade",
		"city": "Cidade do Estado",
		"state": "SP",
		"country": "Brasil",
		"zip_code": "02758-090"
	},
	"id": "2d7abc79-e656-41a2-b4ad-8eb088ab465f"
}

GET /orders

Lista todas as ordens de compra.

Corpo da resposta:

[
	{
		"id": "2df65ff8-171e-4c62-ac3f-37930bf24c81",
		"total_price": "400.00",
		"status": "Finalizado",
		"supplies": [
			{
				"id": "e00d84f8-73ee-4c5f-bcde-cd328d224722",
				"name": "Coca-Cola 2l",
				"buy_price": "1.50",
				"qtd": null,
				"provider": [
					{
						"id": "2c18c9c3-f98a-435c-8a41-8a1479193869",
						"fantasy_name": "Coca Cola",
						"name": "Coca Cola Inc",
						"cnpj": "12345678901234",
						"ie": "123456789",
						"street": "Rua do Bairro",
						"number": 234,
						"complement": "Industria",
						"district": "Bairro da Cidade",
						"city": "Cidade do Estado",
						"state": "SP",
						"country": "Brasil",
						"zip_code": "02758-090"
					}
				]
			},
			{
				"id": "9e516248-54a9-4c65-b75f-46b6e6e8f3cb",
				"name": "Coca-Cola 3l",
				"buy_price": "2.50",
				"qtd": null,
				"provider": [
					{
						"id": "2c18c9c3-f98a-435c-8a41-8a1479193869",
						"fantasy_name": "Coca Cola",
						"name": "Coca Cola Inc",
						"cnpj": "12345678901234",
						"ie": "123456789",
						"street": "Rua do Bairro",
						"number": 234,
						"complement": "Industria",
						"district": "Bairro da Cidade",
						"city": "Cidade do Estado",
						"state": "SP",
						"country": "Brasil",
						"zip_code": "02758-090"
					}
				]
			}
		],
		"provider": {
			"id": "2c18c9c3-f98a-435c-8a41-8a1479193869",
			"fantasy_name": "Coca Cola",
			"name": "Coca Cola Inc",
			"cnpj": "12345678901234",
			"ie": "123456789",
			"street": "Rua do Bairro",
			"number": 234,
			"complement": "Industria",
			"district": "Bairro da Cidade",
			"city": "Cidade do Estado",
			"state": "SP",
			"country": "Brasil",
			"zip_code": "02758-090"
		}
	}
]

GET /orders/:orders_id

Lê uma ordem específica informando o seu id na url.

{
		"id": "2df65ff8-171e-4c62-ac3f-37930bf24c81",
		"total_price": "400.00",
		"status": "Finalizado",
		"supplies": [
			{
				"id": "e00d84f8-73ee-4c5f-bcde-cd328d224722",
				"name": "Coca-Cola 2l",
				"buy_price": "1.50",
				"qtd": null,
				"provider": [
					{
						"id": "2c18c9c3-f98a-435c-8a41-8a1479193869",
						"fantasy_name": "Coca Cola",
						"name": "Coca Cola Inc",
						"cnpj": "12345678901234",
						"ie": "123456789",
						"street": "Rua do Bairro",
						"number": 234,
						"complement": "Industria",
						"district": "Bairro da Cidade",
						"city": "Cidade do Estado",
						"state": "SP",
						"country": "Brasil",
						"zip_code": "02758-090"
					}
				]
			},
			{
				"id": "9e516248-54a9-4c65-b75f-46b6e6e8f3cb",
				"name": "Coca-Cola 3l",
				"buy_price": "2.50",
				"qtd": null,
				"provider": [
					{
						"id": "2c18c9c3-f98a-435c-8a41-8a1479193869",
						"fantasy_name": "Coca Cola",
						"name": "Coca Cola Inc",
						"cnpj": "12345678901234",
						"ie": "123456789",
						"street": "Rua do Bairro",
						"number": 234,
						"complement": "Industria",
						"district": "Bairro da Cidade",
						"city": "Cidade do Estado",
						"state": "SP",
						"country": "Brasil",
						"zip_code": "02758-090"
					}
				]
			}
		],
		"provider": {
			"id": "2c18c9c3-f98a-435c-8a41-8a1479193869",
			"fantasy_name": "Coca Cola",
			"name": "Coca Cola Inc",
			"cnpj": "12345678901234",
			"ie": "123456789",
			"street": "Rua do Bairro",
			"number": 234,
			"complement": "Industria",
			"district": "Bairro da Cidade",
			"city": "Cidade do Estado",
			"state": "SP",
			"country": "Brasil",
			"zip_code": "02758-090"
		}
	}

PATCH /orders/:orders_id

Permite atualizar os dados da ordem de compra. Corpo da requisicao.

{
	"status": "Finalizado"
}

DELETE /orders/:orders_id

Permite deletar uma ordem de compra do nosso banco de dados passando o id na url.

5.7 Stock

A tabela Orders é a responsável por armazenar todos os nossos pedidos de compra de ingredientes ou suprimentos junto aos nossos fornecedores.

Name Description Type
supply_id ID do supply string
qtd Quantidade number

POST /stock

Corpo da requisicao.

Obs.: Caso algum dos suprimentos / ingredientes ja exista em nosso estoque e o status da ordem for igual a "Finalizado" a quantidade total será atualizada.

{
	"supply_id": "9e516248-54a9-4c65-b75f-46b6e6e8f3cb",
	"qtd": 200
}

Resposta da requisição.

{
	"id": "26538565-be80-40fa-a10f-7daa9fd8edd5",
	"qtd": 200,
	"supply": {
		"id": "9e516248-54a9-4c65-b75f-46b6e6e8f3cb",
		"name": "Coca-Cola 3l",
		"buy_price": "2.50",
		"qtd": null,
		"provider": [
			{
				"id": "2c18c9c3-f98a-435c-8a41-8a1479193869",
				"fantasy_name": "Coca Cola",
				"name": "Coca Cola Inc",
				"cnpj": "12345678901234",
				"ie": "123456789",
				"street": "Rua do Bairro",
				"number": 234,
				"complement": "Industria",
				"district": "Bairro da Cidade",
				"city": "Cidade do Estado",
				"state": "SP",
				"country": "Brasil",
				"zip_code": "02758-090"
			}
		]
	}
}

GET /stock

Lista todos os itens cadastrados em estoque.

Corpo da resposta:

[
	{
		"id": "946b9b1b-4efe-46bf-ad9a-6d0acf8bbe23",
		"qtd": 100,
		"supply": {
			"id": "e00d84f8-73ee-4c5f-bcde-cd328d224722",
			"name": "Coca-Cola 2l",
			"buy_price": "1.50",
			"qtd": null,
			"provider": [
				{
					"id": "2c18c9c3-f98a-435c-8a41-8a1479193869",
					"fantasy_name": "Coca Cola",
					"name": "Coca Cola Inc",
					"cnpj": "12345678901234",
					"ie": "123456789",
					"street": "Rua do Bairro",
					"number": 234,
					"complement": "Industria",
					"district": "Bairro da Cidade",
					"city": "Cidade do Estado",
					"state": "SP",
					"country": "Brasil",
					"zip_code": "02758-090"
				}
			]
		}
	},
	{
		"id": "517d9c16-8b7b-46dc-9c81-ec6b005d9ee3",
		"qtd": 100,
		"supply": {
			"id": "9e516248-54a9-4c65-b75f-46b6e6e8f3cb",
			"name": "Coca-Cola 3l",
			"buy_price": "2.50",
			"qtd": null,
			"provider": [
				{
					"id": "2c18c9c3-f98a-435c-8a41-8a1479193869",
					"fantasy_name": "Coca Cola",
					"name": "Coca Cola Inc",
					"cnpj": "12345678901234",
					"ie": "123456789",
					"street": "Rua do Bairro",
					"number": 234,
					"complement": "Industria",
					"district": "Bairro da Cidade",
					"city": "Cidade do Estado",
					"state": "SP",
					"country": "Brasil",
					"zip_code": "02758-090"
				}
			]
		}
	}
]

GET /stock/:stock_id

Lê um item do estoque informando o seu id na url.

{
	"id": "517d9c16-8b7b-46dc-9c81-ec6b005d9ee3",
	"qtd": 100,
	"supply": {
		"id": "9e516248-54a9-4c65-b75f-46b6e6e8f3cb",
		"name": "Coca-Cola 3l",
		"buy_price": "2.50",
		"qtd": null,
		"provider": [
			{
				"id": "2c18c9c3-f98a-435c-8a41-8a1479193869",
				"fantasy_name": "Coca Cola",
				"name": "Coca Cola Inc",
				"cnpj": "12345678901234",
				"ie": "123456789",
				"street": "Rua do Bairro",
				"number": 234,
				"complement": "Industria",
				"district": "Bairro da Cidade",
				"city": "Cidade do Estado",
				"state": "SP",
				"country": "Brasil",
				"zip_code": "02758-090"
			}
		]
	}
}

PATCH /stock/:stock_id

Permite atualizar os dados do item em estoque. Corpo da requisicao.

{
	"qtd": 200
}

DELETE /stock/:stock_id

Permite deletar um item do estoque do nosso banco de dados passando o id na url.

5.8 Products

Products é a tabela responsavel por armazenar os dados de todos os produtos criados com a relação de supply.

Name Description Type
supplies Array de objetos: {"id": "Id do supply", "qtd": 1} Array
name Nome do produto string
price Preço de venda number
img URL da imagem string

POST /products

Para criarmos um novo peoduto.

Corpo da requisição.

{
	"supplies":  [
		{"id": "9e516248-54a9-4c65-b75f-46b6e6e8f3cb", "qtd": 1}
	],
	"name": "Coca Cola 3 Litros",
	"price": 3,
	"img": "https://apoioentrega.vteximg.com.br/arquivos/ids/452238/88434.jpg?v=637105354224830000"
}

Resposta da requisição.

{
	"supplies": [
		{
			"id": "9e516248-54a9-4c65-b75f-46b6e6e8f3cb",
			"name": "Coca-Cola 3l",
			"buy_price": "2.50",
			"qtd": 1,
			"provider": [
				{
					"id": "2c18c9c3-f98a-435c-8a41-8a1479193869",
					"fantasy_name": "Coca Cola",
					"name": "Coca Cola Inc",
					"cnpj": "12345678901234",
					"ie": "123456789",
					"street": "Rua do Bairro",
					"number": 234,
					"complement": "Industria",
					"district": "Bairro da Cidade",
					"city": "Cidade do Estado",
					"state": "SP",
					"country": "Brasil",
					"zip_code": "02758-090"
				}
			]
		}
	],
	"img": "https://apoioentrega.vteximg.com.br/arquivos/ids/452238/88434.jpg?v=637105354224830000",
	"name": "Coca Cola 3 Litros",
	"price": 3,
	"id": "c3b47c1d-f48e-4f3d-be83-957f024ae86b"
}

GET /products

Lista todos os produtos cadastrados.

[
	{
		"id": "c3b47c1d-f48e-4f3d-be83-957f024ae86b",
		"name": "Coca Cola 3 Litros",
		"price": "3.00",
		"img": "https://apoioentrega.vteximg.com.br/arquivos/ids/452238/88434.jpg?v=637105354224830000",
		"supplies": [
			{
				"id": "9e516248-54a9-4c65-b75f-46b6e6e8f3cb",
				"name": "Coca-Cola 3l",
				"buy_price": "2.50",
				"provider": [
					{
						"id": "2c18c9c3-f98a-435c-8a41-8a1479193869",
						"fantasy_name": "Coca Cola",
						"name": "Coca Cola Inc",
						"cnpj": "12345678901234",
						"ie": "123456789",
						"street": "Rua do Bairro",
						"number": 234,
						"complement": "Industria",
						"district": "Bairro da Cidade",
						"city": "Cidade do Estado",
						"state": "SP",
						"country": "Brasil",
						"zip_code": "02758-090"
					}
				]
			}
		]
	}
]

About

Api designed to orchestrate a marketplace and dashboard for Solid Control, a logistics operations management application.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 99.3%
  • Other 0.7%