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!
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.
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.
Você pode acessar essas rotas abaixo através do link https://tiago-caixa-virtual-api.herokuapp.com/.
Cria um novo usuário.
request body:
{
"name": "string",
"email": "string",
"password": "string",
}
response example:
{
"user": {
"id": 1,
"name": "Fulano",
"email": "[email protected]",
}
}
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"
}
Retorna uma lista dos caixas do usuário.
headers
{
"authentication": "Bearer tkasidjfASosdFASldoia812ASDfjo8asdf"
}
request body:
response example:
{
"cashiers": [
{
"id": 1,
"name": "Gastos pessoais"
}
]
}
Cria um novo caixa.
headers
{
"authentication": "Bearer tkasidjfASosdFASldoia812ASDfjo8asdf"
}
request body:
{
"name": "string"
}
response example:
{
"cashier": {
"id": 1,
"name": "Gastos pessoais"
}
}
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": []
}
]
}
Altera os valores de um caixa.
headers
{
"authentication": "Bearer tkasidjfASosdFASldoia812ASDfjo8asdf"
}
request body:
{
"name": "string"
}
response example:
{
"cashier": {
"id": 1,
"name": "Gastos pessoais"
}
}
Remove um caixa da base de dados.
headers
{
"authentication": "Bearer tkasidjfASosdFASldoia812ASDfjo8asdf"
}
request body:
response example:
{
"message": "cashier sucessfully deleted."
}
Retorna uma lista das categorias do usuário.
headers
{
"authentication": "Bearer tkasidjfASosdFASldoia812ASDfjo8asdf"
}
request body:
response example:
{
"categories": [
{
"id": 1,
"name": "Alimentação"
}
]
}
Cria uma nova categoria.
headers
{
"authentication": "Bearer tkasidjfASosdFASldoia812ASDfjo8asdf"
}
request body:
{
"name": "string"
}
response example:
{
"category": {
"id": 1,
"name": "Alimentação"
}
}
Altera os valores de uma categoria.
headers
{
"authentication": "Bearer tkasidjfASosdFASldoia812ASDfjo8asdf"
}
request body:
{
"name": "string"
}
response example:
{
"category": {
"id": 1,
"name": "Alimentação"
}
}
Remove uma categoria da base de dados.
headers
{
"authentication": "Bearer tkasidjfASosdFASldoia812ASDfjo8asdf"
}
request body:
response example:
{
"message": "category sucessfully deleted."
}
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
}
]
}
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
}
}
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
}
}
Remove uma movimentação da base de dados.
headers
{
"authentication": "Bearer tkasidjfASosdFASldoia812ASDfjo8asdf"
}
request body:
response example:
{
"message": "transaction sucessfully deleted."
}