b7e5cb64aac36ac6a715c385fdc406648436a45b
Portal Juru API
API para gerenciamento de pedidos, pagamentos e consultas de dados do sistema Portal Juru.
🚀 Tecnologias
- NestJS - Framework Node.js
- TypeORM - ORM para banco de dados
- Swagger - Documentação da API
- Oracle Database - Banco de dados
- Redis - Cache em memória
📋 Pré-requisitos
- Node.js (v16 ou superior)
- Oracle Database
- Redis
- npm ou yarn
🔧 Instalação
- Clone o repositório:
git clone https://github.com/seu-usuario/portaljuru-api.git
cd portaljuru-api
- Instale as dependências:
npm install
# ou
yarn install
- Configure as variáveis de ambiente:
cp .env.example .env
# Edite o arquivo .env com suas configurações
- 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 lojasGET /api/v1/data-consult/sellers- Lista todos os vendedoresGET /api/v1/data-consult/billings- Retorna informações de faturamentoGET /api/v1/data-consult/customers/:filter- Filtra clientesGET /api/v1/data-consult/products/:filter- Busca produtos filtrados
Pedidos e Pagamentos
GET /api/v1/orders-payment/orders/:id- Lista pedidos de uma lojaGET /api/v1/orders-payment/orders/:id/:orderId- Busca pedido específicoGET /api/v1/orders-payment/payments/:id- Lista pagamentos de um pedidoPOST /api/v1/orders-payment/payments/create- Cria novo pagamentoPOST /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
- Faça o fork do projeto
- Crie uma branch para sua feature (
git checkout -b feature/AmazingFeature) - Commit suas mudanças (
git commit -m 'Add some AmazingFeature') - Push para a branch (
git push origin feature/AmazingFeature) - Abra um Pull Request
Description
Languages
TypeScript
99%
JavaScript
0.7%
Dockerfile
0.3%