2025-04-02 18:18:13 -03:00
2025-03-27 19:29:17 -03:00
2025-04-02 18:18:13 -03:00
2025-03-28 11:29:34 -03:00
2025-04-01 14:46:39 -03:00
2025-03-28 11:29:34 -03:00
2025-03-27 19:29:17 -03:00
2025-03-27 19:29:17 -03:00
2025-04-02 18:18:13 -03:00
2025-04-02 18:18:13 -03:00
2025-04-01 14:46:39 -03:00
2025-04-01 14:46:39 -03:00
2025-04-02 18:18:13 -03:00
2025-03-27 19:29:17 -03:00

Portal Juru API

API para gerenciamento de pedidos, pagamentos e consultas de dados do sistema Portal Juru.

🚀 Tecnologias

📋 Pré-requisitos

  • Node.js (v16 ou superior)
  • Oracle Database
  • Redis
  • npm ou yarn

🔧 Instalação

  1. Clone o repositório:
git clone https://github.com/seu-usuario/portaljuru-api.git
cd portaljuru-api
  1. Instale as dependências:
npm install
# ou
yarn install
  1. Configure as variáveis de ambiente:
cp .env.example .env
# Edite o arquivo .env com suas configurações
  1. Inicie o servidor:
npm run start:dev
# ou
yarn start:dev

📚 Documentação da API

A documentação completa da API está disponível em /api quando o servidor estiver rodando.

Endpoints Principais

Consulta de Dados

  • GET /api/v1/data-consult/stores - Lista todas as lojas
  • GET /api/v1/data-consult/sellers - Lista todos os vendedores
  • GET /api/v1/data-consult/billings - Retorna informações de faturamento
  • GET /api/v1/data-consult/customers/:filter - Filtra clientes
  • GET /api/v1/data-consult/products/:filter - Busca produtos filtrados

Pedidos e Pagamentos

  • GET /api/v1/orders-payment/orders/:id - Lista pedidos de uma loja
  • GET /api/v1/orders-payment/orders/:id/:orderId - Busca pedido específico
  • GET /api/v1/orders-payment/payments/:id - Lista pagamentos de um pedido
  • POST /api/v1/orders-payment/payments/create - Cria novo pagamento
  • POST /api/v1/orders-payment/invoice/create - Cria nova fatura

🛠️ Estrutura do Projeto

src/
├── core/                  # Configurações e utilitários core
│   ├── configs/          # Configurações do projeto
│   ├── database/         # Configuração do banco de dados
│   └── constants/        # Constantes do sistema
├── data-consult/         # Módulo de consulta de dados
│   ├── dto/             # Data Transfer Objects
│   ├── controllers/     # Controladores
│   └── services/        # Serviços
├── orders-payment/       # Módulo de pedidos e pagamentos
│   ├── dto/             # Data Transfer Objects
│   ├── controllers/     # Controladores
│   └── services/        # Serviços
└── orders/              # Módulo de pedidos
    ├── modules/         # Módulos
    ├── controllers/     # Controladores
    ├── services/        # Serviços
    └── repositories/    # Repositórios

🔐 Autenticação

A API utiliza autenticação JWT. Para acessar os endpoints protegidos, inclua o token no header:

Authorization: Bearer seu-token-jwt

📦 DTOs (Data Transfer Objects)

OrderDto

{
  createDate: Date;      // Data de criação do pedido
  storeId: string;       // ID da loja
  orderId: number;       // ID do pedido
  customerId: string;    // ID do cliente
  customerName: string;  // Nome do cliente
  sellerId: string;      // ID do vendedor
  sellerName: string;    // Nome do vendedor
  billingId: string;     // ID da forma de pagamento
  billingName: string;   // Nome da forma de pagamento
  planId: string;        // ID do plano de pagamento
  planName: string;      // Nome do plano de pagamento
  amount: number;        // Valor total do pedido
  installments: number;  // Número de parcelas
  amountPaid: number;    // Valor total pago
}

PaymentDto

{
  orderId: number;       // ID do pedido
  payDate: Date;         // Data do pagamento
  card: string;          // Número do cartão
  installments: number;  // Número de parcelas
  flagName: string;      // Nome da bandeira
  type: string;          // Tipo de pagamento
  amount: number;        // Valor do pagamento
  userId: string;        // ID do usuário
  nsu: string;          // NSU da transação
  auth: string;         // Código de autorização
}

🧪 Testes

Para executar os testes:

npm run test
# ou
yarn test

📝 Licença

Este projeto está sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.

🤝 Contribuição

  1. Faça o fork do projeto
  2. Crie uma branch para sua feature (git checkout -b feature/AmazingFeature)
  3. Commit suas mudanças (git commit -m 'Add some AmazingFeature')
  4. Push para a branch (git push origin feature/AmazingFeature)
  5. Abra um Pull Request
Description
No description provided
Readme 1 MiB
Languages
TypeScript 99%
JavaScript 0.7%
Dockerfile 0.3%