A nossa API é projetada especificamente para gerenciamento logístico, permitindo aos usuários cadastrar suas informações e realizar todo o gerenciamento de suas compras e entregas. Com ela, os usuários podem facilmente acompanhar o status de suas entregas, agendar novas entregas e gerenciar seus pedidos de compra.
Tecnologias utilizadas no projeto:
URL base da aplicação:
https://kenzie-log.onrender.com
Voltar para o topo
Diagrama ER da API definindo bem as relações entre as tabelas do banco de dados.
Voltar para o topo
3.1. Instalando Dependências
Clone o projeto em sua máquina e instale as dependências com o comando:
3.2. Variáveis de Ambiente
Em seguida, crie um arquivo .env , copiando o formato do arquivo .env.example :
Configure suas variáveis de ambiente com suas credenciais do Postgres e uma nova database da sua escolha.
Execute as migrations com o comando:
yarn typeorm migration:run -d src/data-source.ts
Voltar para o topo
Por enquanto, não foi implementada autenticação.
Voltar para o topo
Voltar para os Endpoints
O objeto User é definido como:
Campo
Tipo
Descrição
id
string
Identificador único do usuário
name
string
O nome do usuário.
email
string
O e-mail do usuário.
password
string
A senha de acesso do usuário
isAdm
boolean
Define se um usuário é administrador ou não.
isActive
boolean
Define se um usuário está ativo ou não.
createdAt
Date
Data de criação do usuário.
updatedAt
Date
Data de atualização do usuário.
Address
Object
Informações do endereço do usuário.
Método
Rota
Descrição
POST
/users
Criação de um usuário.
GET
/users
Lista todos os usuários
GET
/users/:user_id
Lista um usuário por ID
PATCH
/users/:user_id
Edita Informações de um usuário por ID
DELETE
/users/:user_id
Deleta um usuário por ID
Voltar para os Endpoints
POST /users
Host: https://kenzielogapi.onrender.com
Authorization: None
Content-type: application/json
{
"name" : " Marcio" ,
"email" : " [email protected] " ,
"isAdm" : true ,
"password" : " 123456" ,
"address" : {
"district" : " Rua Santa Ana" ,
"zipCode" : " 26054188" ,
"number" : " 21" ,
"city" : " Rio de Janeiro" ,
"state" : " RJ" ,
},
}
Schema de Validação com Yup:
name : yup . string ( ) . required ( ) . max ( 72 ) ,
email : yup . string ( ) . email ( ) . required ( ) . max ( 256 ) ,
password : yup . string ( ) . required ( ) . max ( 65 ) ,
isAdm : yup . boolean ( ) . required ( ) ,
address : yup . object ( {
district : yup . string ( ) . required ( ) ,
zipCode : yup . string ( ) . required ( ) . max ( 8 ) ,
number : yup . string ( ) . notRequired ( ) ,
city : yup . string ( ) . required ( ) ,
state : yup . string ( ) . required ( ) . max ( 2 ) ,
} ) ,
OBS.: Chaves não presentes no schema serão removidas.
{
"id" : " 6baa58b7-1bdd-42aa-bb5c-4f89377e153e" ,
"name" : " Marcio" ,
"email" : " [email protected] " ,
"isAdm" : true ,
"isActive" : true ,
"createdAt" : " 16/01/2023"
"updatedAt" : " 16/01/2023"
"address" : {
"id" : " f0d55281-8ac8-4bc0-b5d0-78ab521e1f93"
"district" : " Rua Santa Ana" ,
"zipCode" : " 26054188" ,
"number" : " 21" ,
"city" : " Rio de Janeiro" ,
"state" : " RJ" ,
},
}
Código do Erro
Descrição
409 Conflict
Email already registered.
400 Bad Requiest
Missing fields.
Voltar para os Endpoints
GET /users
Host: https://kenzielogapi.onrender.com
Authorization: Bearer Token Admin
Content-type: application/json
[
{
"id" : " 6baa58b7-1bdd-42aa-bb5c-4f89377e153e" ,
"name" : " Marcio" ,
"email" : " [email protected] " ,
"isAdm" : true ,
"isActive" : true ,
"createdAt" : " 16/01/2023" ,
"updatedAt" : " 16/01/2023" ,
"addressId" : " f0d55281-8ac8-4bc0-b5d0-78ab521e1f93"
}
]
Código do Erro
Descrição
401 Unauthorized
Invalid bearer token.
401 Unauthorized
Bad Request.
1.3. Listando Usuários por ID
Voltar para os Endpoints
GET /users/6baa58b7-1bdd-42aa-bb5c-4f89377e153e
Host: https://kenzielogapi.onrender.com
Authorization: Bearer Token Admin
Content-type: application/json
Parâmetros da Requisição:
Parâmetro
Tipo
Descrição
user_id
string
Identificador único do usuário (User)
{
"id" : " 6baa58b7-1bdd-42aa-bb5c-4f89377e153e" ,
"name" : " Marcio" ,
"email" : " [email protected] " ,
"isAdm" : true ,
"isActive" : true ,
"createdAt" : " 16/01/2023" ,
"updatedAt" : " 16/01/2023" ,
"addressId" : " f0d55281-8ac8-4bc0-b5d0-78ab521e1f93"
}
Código do Erro
Descrição
401 Unauthorized
Invalid bearer token.
404 Not found
User not found.
1.4. Editando Usuários por ID
Voltar para os Endpoints
PATCH /users/6baa58b7-1bdd-42aa-bb5c-4f89377e153e
Host: https://kenzielogapi.onrender.com
Authorization: Bearer Token Admin / User
Content-type: application/json
Parâmetros da Requisição:
Parâmetro
Tipo
Descrição
user_id
string
Identificador único do usuário (User)
{
"id" : " 6baa58b7-1bdd-42aa-bb5c-4f89377e153e" ,
"name" : " Marcio" ,
"email" : " [email protected] " ,
"isAdm" : true ,
"isActive" : true ,
"createdAt" : " 16/01/2023" ,
"updatedAt" : " 16/01/2023" ,
"addressId" : " f0d55281-8ac8-4bc0-b5d0-78ab521e1f93"
}
Código do Erro
Descrição
401 Unauthorized
Invalid bearer token.
403 Forbidden
Unauthorized.
401 Unauthorized
User not found.
1.5. Deletando Usuários por ID
Voltar para os Endpoints
DELETE /users/6baa58b7-1bdd-42aa-bb5c-4f89377e153e
Host: https://kenzielogapi.onrender.com
Authorization: Bearer Token Admin / User
Content-type: application/json
Parâmetros da Requisição:
Parâmetro
Tipo
Descrição
user_id
string
Identificador único do usuário (User)
Código do Erro
Descrição
401 Unauthorized
Invalid bearer token.
404 Not found
User not found.
Voltar para os Endpoints
O objeto Request é definido como:
Campo
Tipo
Descrição
id
string
Identificador único do usuário
name
string
O nome do usuário.
status
string
O e-mail do usuário.
weight
number
A senha de acesso do usuário
cubicMeters
number
Define se um usuário é administrador ou não.
deadline
Date
Define se um usuário está ativo ou não.
createdAt
Date
Data de criação do usuário.
updatedAt
Date
Data de atualização do usuário.
Método
Rota
Descrição
POST
/requests
Criação de um pedido.
GET
/requests
Lista todos os pedidos.
GET
/requests/user/:user_id
Lista todos os pedidos de um usuário por ID
GET
/requests/:request_id
Lista um pedido por ID
PATCH
/requests/:request_id
Edita um pedido por ID
DELETE
/requests/:request_id
Deleta um pedido por ID
Voltar para os Endpoints
POST /requests
Host: https://kenzielogapi.onrender.com
Authorization: Bearer Token
Content-type: application/json
{
"userId" : " 6baa58b7-1bdd-42aa-bb5c-4f89377e153e" ,
"name" : " Package Name" ,
"weight" : 80 ,
"cubicMeters" : 3 ,
"distance" : 128
}
Schema de Validação com Yup:
name: yup . string ( ) ,
status : yup . string ( ) ,
deadline : yup . string ( ) ,
weight : yup . number ( ) ,
cubicMeters : yup . number ( )
OBS.: Chaves não presentes no schema serão removidas.
{
"id" : " 894c3b8e-4a32-4398-8c37-36c4d75f66c1" ,
"name" : " Package Name" ,
"weight" : 80 ,
"cubicMeters" : 3 ,
"deadline" : " 27/02/2023"
"createdAt" : " 16/02/2023"
"updatedAt" : " 16/02/2023"
"user" : {
"name" : " Marcio" ,
"email" : " [email protected] " ,
"isAdm" : true ,
"password" : " 123456" ,
"address" : {
"district" : " Rua Santa Ana" ,
"zipCode" : " 26054188" ,
"number" : " 21" ,
"city" : " Rio de Janeiro" ,
"state" : " RJ" ,
},
}
}
Código do Erro
Descrição
401 Unauthorized
Invalid token.
409 Conflict
Request already exists.
404 Not Found
User not exists.
Voltar para os Endpoints
GET /requests
Host: https://kenzielogapi.onrender.com
Authorization: Bearer Token Admin
Content-type: application/json
[
{
"id" : " 894c3b8e-4a32-4398-8c37-36c4d75f66c1" ,
"name" : " Package name" ,
"status" : " pending" ,
"weight" : 80 ,
"cubicMeters" : 3 ,
"deadline" : " 27/02/2023" ,
"createdAt" : " 16/02/2023" ,
"updatedAt" : " 16/02/2023" ,
"userId" : " 6baa58b7-1bdd-42aa-bb5c-4f89377e153e"
}
]
Código do Erro
Descrição
401 Unauthorized
Invalid bearer token.
401 Unauthorized
Not authorized.
2.3. Listando pedidos por ID
Voltar para os Endpoints
GET /requests/894c3b8e-4a32-4398-8c37-36c4d75f66c1
Host: https://kenzielogapi.onrender.com
Authorization: Bearer Token Admin
Content-type: application/json
Parâmetros da Requisição:
Parâmetro
Tipo
Descrição
request_id
string
Identificador único do pedido (Request)
{
"id" : " 894c3b8e-4a32-4398-8c37-36c4d75f66c1" ,
"name" : " Package name" ,
"status" : " pending" ,
"weight" : 80 ,
"cubicMeters" : 3 ,
"deadline" : " 27/02/2023" ,
"createdAt" : " 16/02/2023" ,
"updatedAt" : " 16/02/2023" ,
"userId" : " 6baa58b7-1bdd-42aa-bb5c-4f89377e153e"
}
Código do Erro
Descrição
401 Unauthorized
Invalid bearer token.
404 Not found
Request not found.
2.4. Listando pedidos por ID de usuário
Voltar para os Endpoints
GET /requests/user/6baa58b7-1bdd-42aa-bb5c-4f89377e153e
Host: https://kenzielogapi.onrender.com
Authorization: Bearer Token
Content-type: application/json
Parâmetros da Requisição:
Parâmetro
Tipo
Descrição
user_id
string
Identificador único do usuário (User)
[
{
"id" : " 894c3b8e-4a32-4398-8c37-36c4d75f66c1" ,
"name" : " Package name" ,
"status" : " pending" ,
"weight" : 80 ,
"cubicMeters" : 3 ,
"deadline" : " 27/02/2023" ,
"createdAt" : " 16/02/2023" ,
"updatedAt" : " 16/02/2023"
}
]
Código do Erro
Descrição
401 Unauthorized
Invalid bearer token.
403 Forbidden
Unauthorized.
401 Unauthorized
User not found.
Voltar para os Endpoints
PATCH /requests/894c3b8e-4a32-4398-8c37-36c4d75f66c1
Host: https://kenzielogapi.onrender.com
Authorization: Bearer Token Admin / User
Content-type: application/json
Parâmetros da Requisição:
Parâmetro
Tipo
Descrição
request_id
string
Identificador único do pedido (Request)
{
"status" : " delivered"
}
{
"id" : " 894c3b8e-4a32-4398-8c37-36c4d75f66c1" ,
"name" : " Package name" ,
"status" : " delivered" ,
"weight" : 80 ,
"cubicMeters" : 3 ,
"deadline" : " 27/02/2023" ,
"createdAt" : " 16/02/2023" ,
"updatedAt" : " 16/02/2023" ,
"userId" : " 6baa58b7-1bdd-42aa-bb5c-4f89377e153e"
}
Código do Erro
Descrição
401 Unauthorized
Invalid bearer token / Not authorization.
404 Not Found
Request not found.
Voltar para os Endpoints
DELETE /requests/894c3b8e-4a32-4398-8c37-36c4d75f66c1
Host: https://kenzielogapi.onrender.com
Authorization: Bearer Token Admin / User
Content-type: application/json
Parâmetros da Requisição:
Parâmetro
Tipo
Descrição
request_id
string
Identificador único do pedido (Request)
Código do Erro
Descrição
404 Not found
Request not found.
400 Bad request
Request already delete.
Voltar para os Endpoints
O objeto Login é definido como:
Campo
Tipo
Descrição
email
string
O e-mail do usuário.
password
string
A senha de acesso do usuário
Método
Rota
Descrição
POST
/login
Login de um usuário.
Voltar para os Endpoints
POST /login
Host: https://kenzielogapi.onrender.com
Authorization: None
Content-type: application/json
{
"token" : " eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c"
}
Código do Erro
Descrição
403 Forbidden
Wrong email/password.
400 Bad Request
User not found.
Voltar para os Endpoints
O objeto Company é definido como:
Campo
Tipo
Descrição
id
string
Identificador único da unidade.
name
string
O nome da unidade.
openingTime
string
Horário de abertura da unidade.
cnpj
string
Cnpj da unidade.
isActive
boolean
Define se uma unidade está ativa ou não.
createdAt
Date
Data de criação da unidade.
updatedAt
Date
Data de atualização da unidade.
address
Object
Informações do endereço da unidade.
contacts
Object
Informações dos contatos da unidade.
vehicles
Array
Informações do veículos registrados na unidade.
Método
Rota
Descrição
POST
/company
Criação de uma unidade.
GET
/company
Lista todos as unidades.
GET
/company/:company_id
Lista uma unidade por ID
PATCH
/company/:company_id
Edita Informações de uma unidade por ID
DELETE
/company/:company_id
Desativa uma unidade por ID
Voltar para os Endpoints
POST /company
Host: https://kenzielogapi.onrender.com
Authorization: Bearer Token Admin
Content-type: application/json
{
"name" : " Unidade carioca" ,
"openingTime" : " 09:00 às 18:00" ,
"cnpj" : " 42.607.321/0001-15" ,
"address" : {
"district" : " Rua Candelária" ,
"zipCode" : " 21754188" ,
"number" : " 500" ,
"city" : " Rio de Janeiro" ,
"state" : " RJ"
},
"contacts" : {
"phoneNumber" : " 21983751995"
"email" : " [email protected] "
}
}
Schema de Validação com Yup:
name : yup . string ( ) . required ( ) ,
openingTime : yup . string ( ) . required ( ) ,
cnpj : yup . string ( ) . required ( ) ,
address : yup
. object ( {
district : yup . string ( ) . required ( ) ,
zipCode : yup . string ( ) . max ( 8 ) . required ( ) ,
number : yup . string ( ) . notRequired ( ) ,
city : yup . string ( ) . required ( ) ,
state : yup . string ( ) . max ( 2 ) . required ( ) ,
} )
. required ( ) ,
contacts : yup
. object ( {
phoneNumber : yup . string ( ) . required ( ) ,
email : yup . string ( ) . required ( ) ,
} )
. required ( ) ,
OBS.: Chaves não presentes no schema serão removidas.
{
"id" : " 3a2bb25f-d20e-495a-925a-245541e9b460" ,
"name" : " Unidade carioca" ,
"openingTime" : " 09:00 às 18:00" ,
"cnpj" : " 42.607.321/0001-15" ,
"address" : {
"id" : " 775b52a7-c728-4691-ab87-c06352dbc5b9" ,
"district" : " Rua Candelária" ,
"zipCode" : " 21754188" ,
"number" : " 500" ,
"city" : " Rio de Janeiro" ,
"state" : " RJ"
},
"contacts" : {
"id" : " f56f163e-93f6-4f75-bf82-f02631029d60" ,
"phoneNumber" : " 21983751995" ,
"email" : " [email protected] "
},
"isActive" : true ,
"createdAt" : " 2023-01-18T17:52:34.166Z" ,
"updatedAt" : " 2023-01-18T17:52:34.166Z"
}
Código do Erro
Descrição
401 Unauthorized
Is not admin.
400 Bad Request
Missing fields.
400 Bad Request
Cnpj/Address/Contact is already registered.
Voltar para os Endpoints
GET /company
Host: https://kenzielogapi.onrender.com
Authorization: Bearer Token Admin
Content-type: application/json
[
{
"id" : " 3a2bb25f-d20e-495a-925a-245541e9b460" ,
"name" : " Unidade carioca" ,
"isActive" : true ,
"openingTime" : " 09:00 às 18:00" ,
"cnpj" : " 42.607.321/0001-15" ,
"createdAt" : " 2023-01-18T17:52:34.166Z" ,
"updatedAt" : " 2023-01-18T17:52:34.166Z" ,
"address" : {
"id" : " 775b52a7-c728-4691-ab87-c06352dbc5b9" ,
"district" : " Rua Candelária" ,
"zipCode" : " 21754188" ,
"number" : " 500" ,
"city" : " Rio de Janeiro" ,
"state" : " RJ"
},
"contacts" : {
"id" : " f56f163e-93f6-4f75-bf82-f02631029d60" ,
"phoneNumber" : " 21983751995" ,
"email" : " [email protected] "
},
}
]
Código do Erro
Descrição
401 Unauthorized
Is not admin.
4.3. Listando Unidade por ID
Voltar para os Endpoints
GET /users/3a2bb25f-d20e-495a-925a-245541e9b460
Host: https://kenzielogapi.onrender.com
Authorization: Bearer Token Admin
Content-type: application/json
Parâmetros da Requisição:
Parâmetro
Tipo
Descrição
company_id
string
Identificador único da unidade (Company)
{
"id" : " 3a2bb25f-d20e-495a-925a-245541e9b460" ,
"name" : " Unidade carioca" ,
"isActive" : true ,
"openingTime" : " 09:00 às 18:00" ,
"cnpj" : " 42.607.321/0001-15" ,
"createdAt" : " 2023-01-18T17:52:34.166Z" ,
"updatedAt" : " 2023-01-18T17:52:34.166Z" ,
"address" : {
"id" : " 775b52a7-c728-4691-ab87-c06352dbc5b9" ,
"district" : " Rua Candelária" ,
"zipCode" : " 21754188" ,
"number" : " 500" ,
"city" : " Rio de Janeiro" ,
"state" : " RJ"
},
"contacts" : {
"id" : " f56f163e-93f6-4f75-bf82-f02631029d60" ,
"phoneNumber" : " 21983751995" ,
"email" : " [email protected] "
},
}
Código do Erro
Descrição
401 Unauthorized
Is not admin.
404 Not found
Company not found.
4.4. Editando unidade por ID
Voltar para os Endpoints
PATCH /company/3a2bb25f-d20e-495a-925a-245541e9b460
Host: https://kenzielogapi.onrender.com
Authorization: Bearer Token Admin
Content-type: application/json
Parâmetros da Requisição:
Parâmetro
Tipo
Descrição
company_id
string
Identificador único da unidade (Company)
{
"openingTime" : " 11:00 às 15:00"
}
{
"id" : " 41eb5a29-80b8-430b-b8aa-e4825a0664d4" ,
"openingTime" : " 11:00 às 15:00" ,
"updatedAt" : " 2023-01-18T17:52:34.166Z"
}
Código do Erro
Descrição
401 Unauthorized
Is not admin.
404 Not found
Company not found.
400 Bad Request
Missing fields.
4.5. Deletando unidade por ID
Voltar para os Endpoints
DELETE /company/3a2bb25f-d20e-495a-925a-245541e9b460
Host: https://kenzielogapi.onrender.com
Authorization: Bearer Token Admin
Content-type: application/json
Parâmetros da Requisição:
Parâmetro
Tipo
Descrição
company_id
string
Identificador único da unidade (Company)
Código do Erro
Descrição
401 Unauthorized
Is not admin.
404 Not found
Company not found.
Voltar para os Endpoints
O objeto Vehicles é definido como:
Campo
Tipo
Descrição
id
string
Identificador único do veículo.
name
string
O nome do veículo.
sign
string
Placa do veículo.
type
string
Tipo do veículo
companyWorkPlace
Object
Informações da unidade em que o veículo pertence.
Método
Rota
Descrição
POST
/vehicles/company/:company_id
Registro de uma veículo pertencente a uma unidade.
GET
/vehicles/company/:company_id
Lista todos os veículos pertencentes a uma unidade.
DELETE
/vehicles/:vehicle_id
Deleta o registro do veículo
Voltar para os Endpoints
/vehicles/company/:company_id
POST /vehicles/company/3a2bb25f-d20e-495a-925a-245541e9b460
Host: https://kenzielogapi.onrender.com
Authorization: Bearer Token Admin
Content-type: application/json
Parâmetros da Requisição:
Parâmetro
Tipo
Descrição
company_id
string
Identificador único da unidade (Company)
{
"name" : " Fiat Strada 1.6" ,
"sign" : " JDK-1832" ,
"type" : " Utilitário"
}
Schema de Validação com Yup:
name : yup . string ( ) . required ( ) ,
sign : yup . string ( ) . required ( ) ,
type : yup . string ( ) . required ( ) ,
OBS.: Chaves não presentes no schema serão removidas.
{
"id" : " d514ee4d-deef-4f26-bdf3-6e972c493c97" ,
"name" : " Fiat Strada 1.6" ,
"sign" : " JDK-1832" ,
"type" : " Utilitário" ,
"companyWorkPlace" : {
"id" : " 3a2bb25f-d20e-495a-925a-245541e9b460" ,
"name" : " Unidade carioca" ,
"isActive" : true ,
"openingTime" : " 11:00 às 15:00" ,
"cnpj" : " 42.607.321/0001-15" ,
"createdAt" : " 2023-01-18T13:16:02.136Z" ,
"updatedAt" : " 2023-01-18T15:56:36.574Z"
}
}
Código do Erro
Descrição
401 Unauthorized
Is not admin.
400 Bad Request
Missing fields.
409 Conflict
Company is deactivate.
404 Not found
Company not found.
Voltar para os Endpoints
/vehicles/company/:company_id
GET /vehicles/company/3a2bb25f-d20e-495a-925a-245541e9b460
Host: https://kenzielogapi.onrender.com
Authorization: Bearer Token Admin
Content-type: application/json
Parâmetros da Requisição:
Parâmetro
Tipo
Descrição
company_id
string
Identificador único da unidade (Company)
{
"id" : " 3a2bb25f-d20e-495a-925a-245541e9b460" ,
"name" : " Unidade carioca" ,
"isActive" : true ,
"openingTime" : " 11:00 às 15:00" ,
"cnpj" : " 42.607.321/0001-15" ,
"createdAt" : " 2023-01-18T13:16:02.136Z" ,
"updatedAt" : " 2023-01-18T15:56:36.574Z" ,
"vehicles" : [
{
"id" : " d514ee4d-deef-4f26-bdf3-6e972c493c97" ,
"name" : " Fiat Strada 1.6" ,
"sign" : " JDK-1832" ,
"type" : " Utilitário"
}
]
}
Código do Erro
Descrição
401 Unauthorized
Is not admin.
409 Conflict
Company is deactivate.
404 Not found
Company not found.
5.3. Deletando veículo por ID
Voltar para os Endpoints
DELETE /vehicles/d514ee4d-deef-4f26-bdf3-6e972c493c97
Host: https://kenzielogapi.onrender.com
Authorization: Bearer Token Admin
Content-type: application/json
Parâmetros da Requisição:
Parâmetro
Tipo
Descrição
vehicle_id
string
Identificador único do veículo (Vehicles)
Código do Erro
Descrição
401 Unauthorized
Is not admin.
409 Conflict
Company is deactivate.
404 Not found
Company not found.