routes.md 6.0 KB

Too Easy Genesis API Routes

INICIATE THE SERVER

cd /home/uriri/Projetos/tooeasy/backend/too-easy-genesis

./mvnw -DskipTests spring-boot:run
java -jar target/too-easy-trader-genesis-0.0.1-SNAPSHOT.jar --server.port=8080

STOP THE SERVER

pkill -f too-easy-trader-genesis-0.0.1-SNAPSHOT.jar

Base URL: http://localhost:8080

Set Postman collection variables:

Default headers for protected routes:

  • Authorization: Bearer {{token}}
  • Content-Type: application/json

Register

POST {{baseUrl}}/auth/register

  • Body (application/json) — fields from RegisterDTO (src/main/java/com/platform2easy/genesis/web/dto/RegisterDTO.java):

    {
    "name": "John Doe",
    "email": "john@example.com",
    "password": "Str0ng!Pass",
    "phone": "+55 11 99999-9999",
    "address": "Av. Paulista, 1000",
    "city": "São Paulo",
    "state": "SP",
    "zip": "01310-100",
    "country": "BR",
    "kyc": 1,
    "birthdate": 19900101,
    "cpf": "123.456.789-00",
    "companyId": 1,
    "roleId": 1,
    "flag": "ACTIVE"
    }
    
  • Response 201 Created:

    { "token": "<JWT>" }
    

    Login

    POST {{baseUrl}}/auth/login

  • Body — AuthenticationDTO (src/main/java/com/platform2easy/genesis/web/dto/AuthenticationDTO.java):

    { "email": "john@example.com", "password": "Str0ng!Pass" }
    
  • Response 200 OK:

    { "token": "<JWT>" }
    

Commodity API (com.platform2easy.genesis.web.controller.CommodityController)

Base path: {{baseUrl}}/api/commodity

  • GET {{baseUrl}}/api/commodity

    • List all commodities.
  • GET {{baseUrl}}/api/commodity/{id}

    • Path params: id (Long)
  • POST {{baseUrl}}/api/commodity

    • Body — entity Commoditiy (domain/model/Commoditiy.java):

      {
      "tipoCommodity": "SACA_GRAOS",
      "descricao": "Soja",
      "quantidade": 100,
      "preco": 125.50,
      "vencimentoPagamento": "2025-12-31",
      "dataLimiteEntrega": "2026-01-15",
      "cedulaProdutoRural": "CPR-123456"
      }
      

- PUT {{baseUrl}}/api/commodity/{id}

  • Body: same as POST

- DELETE {{baseUrl}}/api/commodity/{id}

Notes:

  • tipoCommodity enum values: see domain/enums/TipoCommodity.java (e.g., "SACA_GRAOS").
  • Dates use ISO-8601: LocalDate yyyy-MM-dd.

Compra API (com.platform2easy.genesis.web.controller.CompraController)

Base path: {{baseUrl}}/api/compra

- GET {{baseUrl}}/api/compra

- GET {{baseUrl}}/api/compra/{id}

  • Path params: id (Long)

- POST {{baseUrl}}/api/compra

  • Body — entity Compra with nested ItemCompra list:

    {
    "fornecedor": "Fornecedor XYZ",
    "itens": [
    { "quantidade": 10, "valor": 35.5, "descricao": "Item A" },
    { "quantidade": 5, "valor": 100.0, "descricao": "Item B" }
    ]
    }
    

- PUT {{baseUrl}}/api/compra/{id}

  • Body: same as POST

- DELETE {{baseUrl}}/api/compra/{id}

Notes:

  • Compra and ItemCompra live in domain/model/Compra.java and domain/model/ItemCompra.java.
  • IDs are generated; omit id in POST bodies.

CPR - Emissão (com.platform2easy.genesis.web.controller.cerc.EmissaoCprController)

Base path: {{baseUrl}}/api/cpr/emission

- GET {{baseUrl}}/api/cpr/emission

- GET {{baseUrl}}/api/cpr/emission/{id}

- POST {{baseUrl}}/api/cpr/emission

  • Body — entity EmissaoCpr:

    {
    "dataEntrega": "2025-11-01",
    "localEmissao": "São Paulo",
    "razaoSocialEmissor": "Empresa Emissora SA",
    "tipoCpr": "FISICO"
    }
    

- PUT {{baseUrl}}/api/cpr/emission/{id}

  • Body: same as POST

- DELETE {{baseUrl}}/api/cpr/emission/{id}

Notes:

  • tipoCpr enum values: FISICO, FINANCEIRO (domain/model/cerc/TipoCpr.java).
  • dataEntrega is ISO LocalDate.

CPR - Contrato de Valor (com.platform2easy.genesis.web.controller.cerc.ContratoValorCprController)

Base path: {{baseUrl}}/api/cpr/contract

- GET {{baseUrl}}/api/cpr/contract

- GET {{baseUrl}}/api/cpr/contract/{id}

- POST {{baseUrl}}/api/cpr/contract

  • Body — entity ContratoValorCpr (all fields optional except as required by business rules):

    {
    "autorizoRegistroEDeclaroQueFoiDadoBaixaNoRegistroEmQuaisquerOutrasIf": true,
    "codigoContratoOperacaoCredito": "OP123",
    "codigoContratoScr": "SCR-456",
    "codigoMoeda": "BRL",
    "dataBaixaOutraIf": "2025-10-01T10:00:00",
    "dataContratoSistemaIF": "2025-09-15T09:30:00",
    "dataRegistroOriginal": "2025-09-01T08:00:00",
    "dataTransacao": "2025-10-02",
    "identificacaoPadronizadaOperacaoCredito": "ID-789",
    "indexacao": "CDI",
    "naturezaOperacao": "CREDITO_RURAL",
    "percentualIndexador": 0.12,
    "quantidadeParcelaContratada": 12,
    "referenciaExterna": "REF-2025",
    "taxaJurosOperacao": 0.15,
    "tipoAtivo": "CPR",
    "valorFinanciadoContrato": 100000.00,
    "valorLiquidoCredito": 95000.00,
    "valorTotalCredito": 110000.00
    }
    

- PUT {{baseUrl}}/api/cpr/contract/{id}

  • Body: same as POST

- DELETE {{baseUrl}}/api/cpr/contract/{id}

Notes:

  • Date/time fields use ISO-8601: LocalDate yyyy-MM-dd, LocalDateTime yyyy-MM-dd'T'HH:mm:ss.

CPR - Solicitação de Registro (com.platform2easy.genesis.web.controller.cerc.SolicitacaoRegistroCprController)

Base path: {{baseUrl}}/api/cpr/register

- GET {{baseUrl}}/api/cpr/register

- GET {{baseUrl}}/api/cpr/register/{id}

- POST {{baseUrl}}/api/cpr/register

  • Body — entity SolicitacaoRegistroCpr (references other entities by id):

    {
    "aditivo": "Aditivo 1",
    "contratoValorCpr": { "id": 1 },
    "emissaoCpr": { "id": 1 },
    "status": "NOVO"
    }
    

- PUT {{baseUrl}}/api/cpr/register/{id}

  • Body: same as POST

- POST {{baseUrl}}/api/cpr/register/{id}/send

  • Effect: loads record by id and sets status to ACEITO.

- DELETE {{baseUrl}}/api/cpr/register/{id}

Notes:

  • status enum values: NOVO, ACEITO, LIQUIDADO, RECUSADO, CANCELADO.

Quick Postman steps

  1. Choose a login:

    - POST /auth/login with email/password, OR

    - POST /authentication/login with login/password.

  2. Copy token from response and set Postman variable token.

  3. Use protected endpoints under /api/** with header Authorization: Bearer {{token}}.