Projeto desenvolvido com a finalidade de armazenar contatos. Front-End do projeto.
1- Crie o banco de dados no PostgreSQL
2- Clone o repositório em sua máquina
3- Instale todas as dependências necessárias usando o comando yarn
ou yarn install
4- Crie o arquivo .env
na raiz do projeto e configure com as suas variáveis de ambiente usando o exemplo do .env.example
5- Utilize o comando yarn typeorm migration:run -d src/data-source.ts
para criar as tabaleas no banco de dados
6- Para rodar o projeto utilize o comando yarn dev
OBS: Caso ocorra o seguinte erro Error: listen EADDRINUSE: address already in use :::5000
ao rodar o projeto, mude o endereço da porta do servidor (SERVER_PORT)
no arquivo .env
para outro valor
- JAVASCRIPT
- TYPESCRIPT
- NODE.JS
- EXPRESS
- TYPEORM
- BCRYPT
- CLASS-TRANSFORMER
- CROSS-ENV
- DOTENV
- EXPRESS-ASYNC-ERRORS
- JEST
- JSONWEBTOKEN
- PG
- REFLECT-METADATA
- SQLITE3
- SUPERTEST
- TS-JEST
- TS-NODE-DEV
- YUP
Essa rota não requer autenticação
POST /clients - REQUISIÇÃO
{
"email": "andrade@gmail.com",
"password": "Andrade1!",
"fullName": "Andrade Padilha",
"phone": "41998745612"
}
POST /clients - RESPOSTA - STATUS 201
{
"email": "andrade@gmail.com",
"fullName": "Andrade Padilha",
"phone": "41998745612",
"id": "b80883d4-8ee5-4501-b196-750952a21e47",
"isActive": true,
"createdAt": "2023-02-08T15:31:16.602Z",
"updatedAt": "2023-02-08T15:31:16.602Z"
}
Essas rotas requerem autenticação
GET /clients - REQUISIÇÃO
Não requer corpo para fazer a requisição
GET /clients - RESPOSTA - STATUS 200
{
"id": "b80883d4-8ee5-4501-b196-750952a21e47",
"email": "andrade@gmail.com",
"fullName": "Andrade Padilha",
"phone": "41998745612",
"isActive": true,
"createdAt": "2023-02-08T15:31:16.602Z",
"updatedAt": "2023-02-08T15:31:16.602Z",
"contacts": []
}
PATCH /clients - REQUISIÇÃO
{
"email": "andradaum@gmail.com"
}
PATCH /clients - RESPOSTA - STATUS 200
{
"id": "b80883d4-8ee5-4501-b196-750952a21e47",
"email": "andradaum@gmail.com",
"fullName": "Andrade Padilha",
"phone": "41998745612",
"isActive": true,
"createdAt": "2023-02-08T15:31:16.602Z",
"updatedAt": "2023-02-08T15:48:15.995Z"
}
DELETE /clients - REQUISIÇÃO
Não requer corpo para fazer a requisição
DELETE /clients - RESPOSTA - STATUS 204
Não contém corpo de resposta
Essa rota não requer autenticação
POST /login - REQUISIÇÃO
{
"email": "andrade@gmail.com",
"password": "Andrade1!"
}
POST /login - RESPOSTA - STATUS 200
{
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJlbWFpbCI6ImFuZHJhZGVAZ21haWwuY29tIiwiaWF0IjoxNjc1ODcxMjk1LCJleHAiOjE2NzU5NTc2OTUsInN1YiI6ImI4MDg4M2Q0LThlZTUtNDUwMS1iMTk2LTc1MDk1MmEyMWU0NyJ9.0s6ywow2xN6XMDQCLUtMJdSDYeXnfo2WGvY5wF8dQT4"
}
Essas rotas requerem autenticação
POST /contacts - REQUISIÇÃO
{
"email": "eric@gmail.com",
"fullName": "Eric Padilha",
"phone": "41998234578"
}
POST /contacts - RESPOSTA - STATUS 201
{
"email": "eric@gmail.com",
"fullName": "Eric Padilha",
"phone": "41998234578",
"client": {
"id": "b80883d4-8ee5-4501-b196-750952a21e47"
},
"id": "d5003114-6145-459d-953c-bf5045e4e86b",
"createdAt": "2023-02-08T15:58:07.046Z",
"updatedAt": "2023-02-08T15:58:07.046Z"
}
GET /contacts - REQUISIÇÃO
Não requer corpo para fazer a requisição
GET /contacts - RESPOSTA - STATUS 200
[
{
"id": "d5003114-6145-459d-953c-bf5045e4e86b",
"email": "eric@gmail.com",
"fullName": "Eric Padilha",
"phone": "41998234578",
"createdAt": "2023-02-08T15:58:07.046Z",
"updatedAt": "2023-02-08T15:58:07.046Z"
}
]
PATCH /contacts/:id - REQUISIÇÃO
{
"email": "ericzão@gmail.com",
"fullName": "Eric Silva"
}
PATCH /contacts/:id - RESPOSTA - STATUS 200
{
"id": "d5003114-6145-459d-953c-bf5045e4e86b",
"email": "ericzão@gmail.com",
"fullName": "Eric Silva",
"phone": "41998234578",
"createdAt": "2023-02-08T15:58:07.046Z",
"updatedAt": "2023-02-08T16:02:40.712Z"
}
DELETE /contacts/:id - REQUISIÇÃO
Não requer corpo para fazer a requisição
DELETE /contacts/:id - RESPOSTA - STATUS 204
Não contém corpo de resposta
Copyright Stevan Padilha 2023