Skip to content

RJ-SMTR/api-cct

Repository files navigation

API CCT

github action status

Descrição

API do aplicativo CCT
(Centro de Compensação Tarifária)

Documentação completa

Este projeto foi baseado no template Nestjs Boilerplate

O Projeto do App CCT consome esta API.

Table of Contents

Executar rapidamente

git clone --depth 1 .git my-app
cd my-app/
cp env-example .env
docker compose up -d

Para verificar status:

docker compose logs

Desenvolvimento confortável

git clone --depth 1 .git my-app
cd my-app/
cp env-example .env

Mude DATABASE_HOST=postgres para DATABASE_HOST=localhost

Mude MAIL_HOST=maildev para MAIL_HOST=localhost

Executar contêiner adicional:

docker compose up -d postgres adminer maildev sftp

Login no adminer (login de exemplo):

  • Sistema: PostgreSQL
  • Servidor: postgres
  • Usuário: root
  • Senha: secret
  • Base de dados: api

Configurar projeto:

npm install

npm run migration:run

npm run seed:run

npm run start:dev

Rodar seed caso o banco não esteja vazio:

npm run seed:run -- --force

Rodar seed apenas de alguns módulos

npm run seed:run user mailhistory

O comando não diferencia maiúsculas de minúsculas

Rodar seed com todos os módulos exceto alguns

npm run seed:run -- --exclude user mailhistory
> A ordem dos parâmetros não influencia a execução

SFTP

Você pode usar:

  1. Filezilla
  2. Extensão de VSCode SFTP.

Caso use a extensão de VSCode há uma configuração de exemplo em local_dev_example/.vscode/sftp.json

Links

Banco de dados

Generate migration

npm run migration:generate -* src/database/migrations/CreateNameTable 

Run migration

npm run migration:run

Revert migration

npm run migration:revert

Drop all tables in database

npm run schema:drop

Run seed

npm run seed:run

Testes

# unit tests
npm run test

# e2e tests
npm run test:e2e

Testando scripts localmente

Para testar scripts que fazem uso das mesmas boblioitecas e componentes deste projeto basta criar a seguinte pasta:

api-cct
📂 src
    📂 local_dev    # não sincornizado
        seus-scripts.ts

Para executar basta rodar:

ts-node "diretório do script"

Depurando testes

Configuração no VSCode:

Requisitos

Veja em .vscode/launch.json

Testes no Docker

docker compose -f docker-compose.ci.yaml --env-file env-example -p ci up --build --exit-code-from api && docker compose -p ci rm -svf

Benchmarking de testes

docker run --rm jordi/ab -n 100 -c 100 -T application/json -H "Authorization: Bearer USER_TOKEN" -v 2 http://<server_ip>:3000/api/v1/users