/BaaS-nestjs

Primary LanguageTypeScript

Bank as a Service

O projeto é uma Rest API baseada em BaaS (Bank as a Service). Essa aplicação é um sistema feita com Nodejs/TypeScript e nestjs para cadastro de contas bancárias de pessoas. Com essa API é possível: fazer seu cadastro, atualizar seus dados, consultar seu saldo, realizar transferência da sua conta para conta de outra pessoa (dentr da mesma aplicação). Cada pessoa pode ter apenas uma conta.

A maiora dos campos para cadastro possuem vlidações, utilizando class-validator. Então, não é possível inserir dados quaisquer.

A Atualização, deleção, transferência bancária e consulta de saldo está atrelada à devida autenticação com estratégia JWT. Ou seja, primeiro é preciso realizar login na sua conta bancária e somente depois a realização de operações.

Tecnologias utilizadas neste projeto:

- Nodejs/TypeScript

- Nestjs

- MongoDB

- Passport

JsonWEbToken (JWT)

ROTAS

📚 ACCOUNTS 📚

Método Rota Descrição
GET /accounts Lista todos as persons

| GET | accounts/persons/{id} | Busca o persons pelo {id} |


| GET | accounts/persons/{cpf} | Busca o persons pelo {cpf} |


| GET | accounts/persons/{account} | Busca o persons pelo {account} |


retornam:

{
  "_id": "Objectid"
    "name": string ("obrigatório"),
    "cpf": string,
    "adress": {
      "zipCode": string,
            "street": string,
            "houseNumber": number,
            "city": string,
            "state": string
    },
    "cellphone": string,
    "email": string,
    "account": number,
    "vd": 1,
    "password": string (criptografa),
    "saldo": string,

}

📚 PERSONS 📚

| GET | /persons/{saldo} | consulta saldo (necessário realizar login) |


| GET | /persons/{cpf} | consulta dados da person (necessário realizar login) |


{
  name: string,
  account: number,
  vd: 1,
  saldo: number,
  cpf: string,
  address: object
}

| POST | /persons | Adiciona um novo person |

campos necessários:

{

    "name": string ("obrigatório"),
    "cpf": string,
    "adress": {
      "zipCode": string,
            "street": string,
            "houseNumber": number,
            "city": string,
            "state": string
    },
    "cellphone": string,
    "email": string,
    "password": string,
    "saldo": string(não obrigatório, defulto como zero),

}

| POST | /persons/auth/login | Realiza login de uma person cadastrada|

campos necessários:

{
  "account": string,
  "password": string
}

| PATCH | /persons/:{id} | Atualiza o persons pelo {id} (necessário realiar login)|

exemplo (apenas os campos que quiser atualizar):

{
  "email": string
}

| PATCH | /persons/:{cpf} | realiza uma transferência de uma conta para outra (necessário realiar login)|

campos necessários (no body o cpf é o da pessoa que irá receber a transferência):

{
  "cpf": string,
  "saldo": string
}

| DELETE | /persons/:{id} | Deleta o persons pelo {id} (necessário realizar login)|

Author: Luciano mendes Desenvolver Backend | Linkedin