From 15bb11fc4cd9fc50cf006b8259f150c8bfe9925d Mon Sep 17 00:00:00 2001 From: JurTI-BR Date: Wed, 2 Apr 2025 18:18:13 -0300 Subject: [PATCH] push da documentacao da api --- API.md | 300 ++++++++++++++++++++++++++++++++++ CONTRIBUTING.md | 141 ++++++++++++++++ README.md | 190 +++++++++++++++------ src/auth/doc/doc.txt | 53 ------ src/auth/doc/login.fluxo.html | 117 ------------- src/data-consult/doc.html | 114 ------------- 6 files changed, 578 insertions(+), 337 deletions(-) create mode 100644 API.md create mode 100644 CONTRIBUTING.md delete mode 100644 src/auth/doc/doc.txt delete mode 100644 src/auth/doc/login.fluxo.html delete mode 100644 src/data-consult/doc.html diff --git a/API.md b/API.md new file mode 100644 index 0000000..be91fff --- /dev/null +++ b/API.md @@ -0,0 +1,300 @@ +# Portal Juru API Documentation + +## Índice +1. [Autenticação](#autenticação) +2. [Endpoints](#endpoints) + - [Consulta de Dados](#consulta-de-dados) + - [Pedidos e Pagamentos](#pedidos-e-pagamentos) +3. [Modelos de Dados](#modelos-de-dados) +4. [Exemplos de Uso](#exemplos-de-uso) +5. [Códigos de Erro](#códigos-de-erro) + +## Autenticação + +A API utiliza autenticação JWT. Para acessar os endpoints protegidos, inclua o token no header: + +``` +Authorization: Bearer seu-token-jwt +``` + +## Endpoints + +### Consulta de Dados + +#### Listar Lojas +```http +GET /api/v1/data-consult/stores +``` + +**Resposta** +```json +[ + { + "id": "001", + "name": "Loja Principal", + "store": "001 - Loja Principal" + } +] +``` + +#### Listar Vendedores +```http +GET /api/v1/data-consult/sellers +``` + +**Resposta** +```json +[ + { + "id": "001", + "name": "João Silva" + } +] +``` + +#### Consultar Faturamento +```http +GET /api/v1/data-consult/billings +``` + +**Resposta** +```json +[ + { + "id": "001", + "date": "2024-04-02T10:00:00Z", + "total": 1000.00 + } +] +``` + +#### Filtrar Clientes +```http +GET /api/v1/data-consult/customers/:filter +``` + +**Parâmetros** +- `filter`: Termo de busca (nome, documento, etc.) + +**Resposta** +```json +[ + { + "id": "001", + "name": "Maria Silva", + "document": "123.456.789-00" + } +] +``` + +#### Buscar Produtos +```http +GET /api/v1/data-consult/products/:filter +``` + +**Parâmetros** +- `filter`: Termo de busca (nome, código, etc.) + +**Resposta** +```json +[ + { + "id": "001", + "name": "Produto Exemplo", + "manufacturerCode": "ABC123" + } +] +``` + +### Pedidos e Pagamentos + +#### Listar Pedidos da Loja +```http +GET /api/v1/orders-payment/orders/:id +``` + +**Parâmetros** +- `id`: ID da loja + +**Resposta** +```json +[ + { + "createDate": "2024-04-02T10:00:00Z", + "storeId": "001", + "orderId": 12345, + "customerId": "001", + "customerName": "João Silva", + "sellerId": "001", + "sellerName": "Maria Santos", + "billingId": "001", + "billingName": "Cartão de Crédito", + "planId": "001", + "planName": "3x sem juros", + "amount": 1000.00, + "installments": 3, + "amountPaid": 1000.00 + } +] +``` + +#### Buscar Pedido Específico +```http +GET /api/v1/orders-payment/orders/:id/:orderId +``` + +**Parâmetros** +- `id`: ID da loja +- `orderId`: ID do pedido + +**Resposta** +```json +{ + "createDate": "2024-04-02T10:00:00Z", + "storeId": "001", + "orderId": 12345, + "customerId": "001", + "customerName": "João Silva", + "sellerId": "001", + "sellerName": "Maria Santos", + "billingId": "001", + "billingName": "Cartão de Crédito", + "planId": "001", + "planName": "3x sem juros", + "amount": 1000.00, + "installments": 3, + "amountPaid": 1000.00 +} +``` + +#### Listar Pagamentos do Pedido +```http +GET /api/v1/orders-payment/payments/:id +``` + +**Parâmetros** +- `id`: ID do pedido + +**Resposta** +```json +[ + { + "orderId": 12345, + "payDate": "2024-04-02T10:00:00Z", + "card": "**** **** **** 1234", + "installments": 3, + "flagName": "VISA", + "type": "CREDITO", + "amount": 1000.00, + "userId": "001", + "nsu": "123456789", + "auth": "A12345" + } +] +``` + +#### Criar Pagamento +```http +POST /api/v1/orders-payment/payments/create +``` + +**Corpo da Requisição** +```json +{ + "orderId": 12345, + "card": "**** **** **** 1234", + "auth": "A12345", + "nsu": "123456789", + "installments": 3, + "amount": 1000.00, + "flagName": "VISA", + "paymentType": "CREDITO", + "userId": 1 +} +``` + +#### Criar Fatura +```http +POST /api/v1/orders-payment/invoice/create +``` + +**Corpo da Requisição** +```json +{ + "orderId": 12345, + "userId": 1 +} +``` + +## Modelos de Dados + +### OrderDto +```typescript +interface 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 +```typescript +interface 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 +} +``` + +## Códigos de Erro + +| Código | Descrição | +|--------|-----------| +| 400 | Requisição inválida | +| 401 | Não autorizado | +| 403 | Acesso negado | +| 404 | Recurso não encontrado | +| 500 | Erro interno do servidor | + +## Exemplos de Uso + +### Exemplo de Requisição com cURL + +```bash +# Listar pedidos de uma loja +curl -X GET "http://localhost:3000/api/v1/orders-payment/orders/001" \ + -H "Authorization: Bearer seu-token-jwt" + +# Criar novo pagamento +curl -X POST "http://localhost:3000/api/v1/orders-payment/payments/create" \ + -H "Authorization: Bearer seu-token-jwt" \ + -H "Content-Type: application/json" \ + -d '{ + "orderId": 12345, + "card": "**** **** **** 1234", + "auth": "A12345", + "nsu": "123456789", + "installments": 3, + "amount": 1000.00, + "flagName": "VISA", + "paymentType": "CREDITO", + "userId": 1 + }' \ No newline at end of file diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..66fd85e --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,141 @@ +# Guia de Contribuição + +Obrigado por considerar contribuir para o Portal Juru API! Este documento fornece um conjunto de diretrizes para contribuir com o projeto. + +## Como Contribuir + +1. Faça um 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 + +## Padrões de Código + +### TypeScript/JavaScript + +- Use TypeScript para todo o código +- Siga o [style guide oficial do TypeScript](https://www.typescriptlang.org/docs/handbook/declaration-files/by-example.html) +- Use ESLint e Prettier para formatação +- Mantenha o código limpo e bem documentado + +### NestJS + +- Siga as [melhores práticas do NestJS](https://docs.nestjs.com/recipes/prisma) +- Use decorators apropriadamente +- Mantenha os módulos bem organizados +- Use DTOs para validação de dados + +### Banco de Dados + +- Use TypeORM para todas as operações de banco de dados +- Mantenha as queries SQL otimizadas +- Use transações quando necessário +- Documente as queries complexas + +## 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 +``` + +## Convenções de Commits + +Use o seguinte formato para commits: + +``` +(): + + + +