Giter VIP home page Giter VIP logo

api-caixa-virtual's Introduction

API Caixa Virtual

Está precisando registrar a movimentação financeira sua ou do seu negócio e pensa em construir uma aplicação para isso? A API Caixa Virtua oferece várias funcionalidades para criação de caixas e registro de atividades financeiras. Basta sua aplicação consumila através de rotas HTTP e pronto, você tera tudo o que precisa!

Como instalar

A API Caixa Virtual é toda escrita em NodeJs e tem um banco em postgres, então, se você tiver o PostgreSQL, o Node e o Yarn devidamente instalado e configurado na sua máquina, basta baixar esse repositório criar um arquivo .env seguindo o exemplo em .env.example, executar yarn install para instalar todas as dependências, npx sequelize-cli db:migrate para configurar o banco e logo após executar yarn dev para abrir um servidor de desenvolvimento.

Assim, você terá uma instancia da API Caixa Virtual rodando na sua máquina no endereço localhost:3333.

Se você preferir utilizar um ambiente docker, basta alterar a entrada DB_HOST no seu arquivo .env para postgres e executar docker-compose up para subir uma infraestrutura de banco e aplicação em máqinas virtuais.

Testes

A API Caixa Virtual vem com uma suite de testes bem completa, abordando todas as rotas implementadas. Para rodar os testes execute o comando yarn test. Os testes utilizam um banco sqlite, então, por favor, instale o sqlite3 na sua máquina.

Rotas da API

Você pode acessar essas rotas abaixo através do link https://tiago-caixa-virtual-api.herokuapp.com/.

POST /users

Cria um novo usuário.

request body:

{
  "name": "string",
  "email": "string",
  "password": "string",
}

response example:

{
  "user": {
    "id": 1,
    "name": "Fulano",
    "email": "[email protected]",
  }
}

POST /login

Cria uma nova sessão de usuário e retorna um token jwt.

request body:

{
  "email": "string",
  "password": "string",
}

response example:

{
  "user": {
    "id": 1,
    "name": "Fulano",
    "email": "[email protected]",
  },
  "token": "ASDfasDFASD@!asDFasdF213asdF3as.dfa!Rasdf!@asDF!ra"
}

GET /cashiers

Retorna uma lista dos caixas do usuário.

headers

{
  "authentication": "Bearer tkasidjfASosdFASldoia812ASDfjo8asdf"
}

request body:

response example:

{
  "cashiers": [
    {
      "id": 1,
      "name": "Gastos pessoais"
    }
  ]
}

POST /cashiers

Cria um novo caixa.

headers

{
  "authentication": "Bearer tkasidjfASosdFASldoia812ASDfjo8asdf"
}

request body:

{
  "name": "string"
}

response example:

{
  "cashier": {
    "id": 1,
    "name": "Gastos pessoais"
  }
}

GET /cashiers/{id}

Exibe o relatório de um caixa.

headers

{
  "authentication": "Bearer tkasidjfASosdFASldoia812ASDfjo8asdf"
}

request body:

response example:

{
  "saldoTotal": -20,
  "movimentacoes": [
    {
      "data": "2020-08-23T19:15:07.381Z",
      "id": 1,
      "tipo": "gasto",
      "valor": 50,
      "descricao": null,
      "categorias": [
        {
          "id": 1,
          "nome": "Alimentação"
        }
      ]
    },
    {
      "data": "2020-08-23T19:15:17.350Z",
      "id": 2,
      "tipo": "ganho",
      "valor": 30,
      "descricao": null,
      "categorias": []
    }
  ]
}

PUT /cashiers/{id}

Altera os valores de um caixa.

headers

{
  "authentication": "Bearer tkasidjfASosdFASldoia812ASDfjo8asdf"
}

request body:

{
	"name": "string"
}

response example:

{
  "cashier": {
    "id": 1,
    "name": "Gastos pessoais"
  }
}

DELETE /cashiers/{id}

Remove um caixa da base de dados.

headers

{
  "authentication": "Bearer tkasidjfASosdFASldoia812ASDfjo8asdf"
}

request body:

response example:

{
  "message": "cashier sucessfully deleted."
}

GET /categories

Retorna uma lista das categorias do usuário.

headers

{
  "authentication": "Bearer tkasidjfASosdFASldoia812ASDfjo8asdf"
}

request body:

response example:

{
  "categories": [
    {
      "id": 1,
      "name": "Alimentação"
    }
  ]
}

POST /categories

Cria uma nova categoria.

headers

{
  "authentication": "Bearer tkasidjfASosdFASldoia812ASDfjo8asdf"
}

request body:

{
  "name": "string"
}

response example:

{
  "category": {
    "id": 1,
    "name": "Alimentação"
  }
}

PUT /categories/{id}

Altera os valores de uma categoria.

headers

{
  "authentication": "Bearer tkasidjfASosdFASldoia812ASDfjo8asdf"
}

request body:

{
  "name": "string"
}

response example:

{
  "category": {
    "id": 1,
    "name": "Alimentação"
  }
}

DELETE /categories/{id}

Remove uma categoria da base de dados.

headers

{
  "authentication": "Bearer tkasidjfASosdFASldoia812ASDfjo8asdf"
}

request body:

response example:

{
  "message": "category sucessfully deleted."
}

GET /cashier/{id}/transactions

Retorna uma lista das movimentações do usuário para a caixa especificada.

headers

{
  "authentication": "Bearer tkasidjfASosdFASldoia812ASDfjo8asdf"
}

request body:

response example:

{
  "transactions": [
    {
      "id": 1,
      "type": 1,
      "value": 30,
      "categories": [],
      "description": null
    }
  ]
}

POST /cashier/{id}/transactions

Cria uma nova movimentação na caixa.

headers

{
  "authentication": "Bearer tkasidjfASosdFASldoia812ASDfjo8asdf"
}

request body:

{
  "type": "number",
  "value": "number",
  "categories": "array",
  "description": "string"
}

response example:

{
  "transaction": {
    "id": 1,
    "type": 1,
    "value": 30,
    "categories": [],
    "description": null
  }
}

PUT /cashier/{id}/transactions/{categoryId}

Altera os valores de uma movimentação.

headers

{
  "authentication": "Bearer tkasidjfASosdFASldoia812ASDfjo8asdf"
}

request body:

{
  "type": "number",
  "value": "number",
  "description": "string"
}

response example:

{
  "transaction": {
    "id": 1,
    "type": 1,
    "value": 30,
    "categories": [],
    "description": null
  }
}

DELETE /cashier/{id}/transactions/{categoryId}

Remove uma movimentação da base de dados.

headers

{
  "authentication": "Bearer tkasidjfASosdFASldoia812ASDfjo8asdf"
}

request body:

response example:

{
  "message": "transaction sucessfully deleted."
}

api-caixa-virtual's People

Contributors

tiagolisboa avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.