API para solicitação de cartões de crédito. Existe dois endpoints para a solicitação de cartão, em /partial pode-se enviar a socicitação parcialmente, ou seja, primeiro o nome, depois e-mail, e assim por diante. Quando o usuário terminar de preencher toda a proposta e aceitar os termos, envia os dados para o endpoint /final.
Instalar as dependências
npm install
Executar projeto
npm start
Executar em modo de desenvolvimento
npm run dev
Executar os testes
npm run test
A API retorna os seguintes códigos de status:
Códigos | Descrição |
---|---|
200 | OK |
201 | CRIADO |
400 | REQUISIÇÃO ERRADA |
401 | NÃO AUTORIZADO |
500 | ERRO INTERNO |
Para realizar requisições na API é necessário ter autorização. Para isso é necessário se registrar na API, basta realizar um POST
em /register.
POST
- Request
{
"name" : "admin",
"email" : "admin@admin.com",
"senha" : "123"
}
- Response
{
"success": true,
"title": "Usuário criado com sucesso.",
"token": "seu_token_aqui",
"status": 201
}
Para realizar requisições na API é necessário ter o token de acesso. Para obter o token é necessário se autenticar na API, basta realizar um POST
em /authenticate.
POST
- Request
{
"email" : "admin@admin.com",
"senha" : "123"
}
- Response
{
"success": true,
"title": "Usuário autenticado com sucesso.",
"token": "seu_token_aqui",
"status": 200
}
Na resposta se recebe o token
que será utilizado no cabeçalho das próximas requisições, desta forma:
"Authorization": "Bearer seu_token_aqui",
Nesse endpoint envia a solicitação parcialmente, e a API retorna um token, para que possa ser atualizado esses dados posteriormente.
POST
- Request
{
"name" : "Leonardo"
}
- Response
{
"success": true,
"token": "5d55d8a56dfb792854f7d681",
"title": "Salvo com sucesso.",
"status": 201
}
Em seguida, pode enviar uma nova requisição, agora utilizando o token recebido na resposta, para atualizar a sua solicitação.
POST
- Request
{
"token": "5d55d8a56dfb792854f7d681",
"name" : "Leonardo"
}
- Response
{
"success": true,
"token": "5d55d8a56dfb792854f7d681",
"title": "Atualizado com sucesso.",
"status": 200
}
Esse endpoint recebe a solicitação completa, ou seja com todos os campos. A API valida todos os campos, caso os esteja tudo certo, essa solicitação altera seu status para solicitação completa.
POST
- Request
{
"token": "5d55d8a56dfb792854f7d681",
"product" : 1,
"name" : "Leonardo",
"email" : "leonardo@hotmail.com",
"cpf": "91577748034",
"birthdate" : "1995-02-17",
"phone" : "18 1234-5678"
}
- Response
{
"success": true,
"token": "5d55d8a56dfb792854f7d681",
"title": "Solicitação criada com sucesso.",
"status": 201
}
Erro de validação, ao fazer uma requisição com algum campo inválido, por exemplo, o name
, a API na resposta retorna um objeto errors
com os erros de validação.
POST
- Request
{
"name" : "Leo"
}
- Response
{
"success": false,
"title": "Erro na validação de um ou mais campos.",
"status": 400,
"errors": {
"name": [
"Nome deve ter pelo menos 5 caracteres."
],
}
}
Erro na regra de negócio, exemplo, um mesmo CPF não pode ter uma nova proposta por 90 dias. Então a API retorna uma resposta de erro com a descrição do erro ocorrido.
POST
- Request
{
"product" : 1,
"name" : "Leonardo",
"email" : "leonardo@hotmail.com",
"cpf": "91577748034",
"birthdate" : "1995-02-17",
"phone" : "18 1234-5678"
}
- Response
{
"success": false,
"title": "Um mesmo CPF não pode ter uma nova proposta por 90 dias.",
"status": 400,
"errors": []
}