Permite cadastrar em um banco de dados contatos com as seguintes informações:
- Id
- Primeiro Nome
- Último nome
- Telefones (realcionamento 1:n)
Para isso o banco de dados foi estruturado da seguinte forma:
- typescript
- typeorm
- express
- mysql
- Faça clone do repositório e entre no novo diretório criado
git clone [email protected]:abelsouzacosta/csptecnologia-desafio-backend.git
cd csptecnologia-desafio-backend/
- Neste projeto foi usado o typeorm, para que seja possível fazer o uso de migrations é preciso ter o pacote
ts-node
instalado globalmente, se você não possuir este pacote instalado de forma global pode instalá-lo usando o comando:
npm -g install ts-node
ou sudo npm -g install ts-node
(caso em ambiente linux)
-
Renomeie os arquivos
.env.local
e.ormconfig.env
para.env
eormconfig.env
, respectivamente; -
Dentro de
.env
determine a porta da aplicação (ex: 3030) -
Crie um banco de dados MYSQL com um nome qualquer de sua preferência (ex: CONTACTS)
-
No arquivo
ormconfig.env
determine os valores das variáveisTYPEORM_USERNAME
,TYPEORM_PASSWORD
eTYPEORM_DATABASE
com o usuário do banco de dados, a senha e o nome do banco de dados criado no passo anterior. -
Rode as migrations com o comando:
yarn migration:run
-
Inicialize a aplicação:
yarn dev
[GET]/contacts: Retorna todas as instâncias inseridas no banco de dados, se passada uma query parameter também é possível filtrar pelos nomes e pelo email, da seguinte forma:
contacts?firstName=value
ou contacts?lastName=value
ou contacts?email=value
[GET]/contacts/:id: Lista todos os detalhes de um único contato identificado pelo id passado no parametro da url
[POST]/contacts: A rota deve receber no corpo da requisição o primeiro nome, último nome, email e um array contendo oos números de telefone do contato, como podemos ver abaixo:
{
"firstName": "Name",
"lastName": "Surname",
"email": "[email protected]",
"phone_numbers": [
"77777777777",
"77777777778"
]
}
[PUT]/contacts/:id: A atualiza as informações principais do contato: firstName, lastName e email. O id
do contato deve ser passado por parametro da url, as demais informações devem ser passadas no corpo da requisição.
[DELETE]/contacts/:id: Remove a instância de contato com o id passado
[POST]/contacts/add_new_number_to_contact/:id: Permite adicionar um novo número de telefone ao contato identificado pelo id
o corpo da requisição deve estar dessa forma:
{
"number": "75992866624"
}
Abel Souza ©️