Enviar arquivos para "/"

This commit is contained in:
2026-04-29 01:14:10 +00:00
parent 26ea826831
commit e324fdcec6
3 changed files with 1829 additions and 1416 deletions

292
DOCUMENTATION.md Normal file
View File

@@ -0,0 +1,292 @@
# Documentação de API - Biblioteca do Usuário (GameVerse)
> **Versão**: 1.0.0
> **Data**: 28/04/2026
> **Serviço**: Biblioteca do Usuário (Library Service)
---
## Base URLs
### Ambiente de Desenvolvimento
```
http://localhost:3005
```
### Ambiente de Produção
```
https://api.gameverse.com.br/library
```
---
## Endpoints
| Método | Endpoint | Descrição |
|--------|----------|------------|
| POST | `/library/add` | Adiciona item à biblioteca |
| GET | `/library/user/:user_id` | Lista itens do usuário |
| POST | `/library/integration/payment-approved` | Confirmação de pagamento |
---
## 1. Adicionar Item à Biblioteca
### POST `/library/add`
Adiciona um item manualmente à biblioteca do usuário.
**URL Completa (Produção)**:
```
POST https://api.gameverse.com.br/library/add
```
**Request Body**:
```json
{
"user_id": 1,
"type": "game",
"item_id": 123,
"title": "The Witcher 3",
"platform": "Steam"
}
```
**Parâmetros**:
| Campo | Tipo | Obrigatório | Descrição |
|-------|------|-------------|-----------|
| user_id | integer | ✅ | ID do usuário |
| type | string | ✅ | "game" ou "gift_card" |
| item_id | integer | ✅ | ID do item na loja |
| title | string | ✅ | Título do jogo/cartão |
| platform | string | ❌ | Plataforma (Steam, Epic, etc) |
**Response Sucesso (200)**:
```json
{
"success": true,
"message": "Item adicionado à biblioteca com sucesso",
"data": {
"id": 1,
"user_id": 1,
"type": "game",
"item_id": 123,
"title": "The Witcher 3",
"platform": "Steam",
"acquired_at": "2026-04-28T10:00:00.000Z"
}
}
```
**Response Erro (400/500)**:
```json
{
"success": false,
"message": "Erro ao adicionar item",
"error": "Mensagem de erro"
}
```
---
## 2. Listar Biblioteca do Usuário
### GET `/library/user/:user_id`
Retorna todos os itens da biblioteca de um usuário específico.
**URL Completa (Produção)**:
```
GET https://api.gameverse.com.br/library/user/1
```
**Parâmetros na URL**:
| Campo | Tipo | Descrição |
|-------|------|-----------|
| user_id | integer | ID do usuário (path param) |
**Response Sucesso (200)**:
```json
{
"success": true,
"message": "Biblioteca carregada com sucesso",
"data": [
{
"id": 1,
"user_id": 1,
"type": "game",
"item_id": 123,
"title": "The Witcher 3: Wild Hunt",
"platform": "Steam",
"acquired_at": "2026-04-28T10:00:00.000Z"
},
{
"id": 2,
"user_id": 1,
"type": "gift_card",
"item_id": 456,
"title": "Steam Gift Card $50",
"platform": "Steam",
"acquired_at": "2026-04-27T15:30:00.000Z"
}
]
}
```
**Response Erro (404)**:
```json
{
"success": false,
"message": "Usuário não encontrado",
"error": "Nenhum item na biblioteca"
}
```
---
## 3. Confirmação de Pagamento (Integração)
### POST `/library/integration/payment-approved`
Endpoint para integração com o serviço de pagamentos. Recebe confirmação de pagamento aprovado e adiciona o item automaticamente à biblioteca.
**URL Completa (Produção)**:
```
POST https://api.gameverse.com.br/library/integration/payment-approved
```
**Request Body**:
```json
{
"user_id": 1,
"type": "game",
"item_id": 789,
"title": "Cyberpunk 2077",
"platform": "GOG"
}
```
**Fluxo de Integração**:
1. Serviço de pagamentos envia dados após aprovação
2. Biblioteca verifica se item já existe
3. Se não existir, adiciona ao banco
4. Retorna confirmação de sucesso ou erro
**Response Sucesso (200)**:
```json
{
"success": true,
"message": "Pagamento confirmado e item adicionado à biblioteca",
"data": {
"user_id": 1,
"item_id": 789,
"title": "Cyberpunk 2077"
}
}
```
**Response Item Duplicado (200)**:
```json
{
"success": true,
"message": "Item já está na biblioteca do usuário",
"data": {
"user_id": 1,
"item_id": 789,
"title": "Cyberpunk 2077"
}
}
```
---
## Códigos de Status HTTP
| Código | Descrição |
|--------|-----------|
| 200 | Sucesso |
| 400 | Erro na requisição (dados inválidos) |
| 404 | Recurso não encontrado |
| 500 | Erro interno do servidor |
---
## Padrão de Respostas
Todas as respostas seguem este formato:
```json
{
"success": boolean,
"message": string,
"data": any,
"error": any
}
```
---
## Headers Obrigatórios
Para todas as requisições, incluir:
```
Content-Type: application/json
Authorization: Bearer <token_jwt>
```
---
## Exemplos de Uso
### cURL - Adicionar Item
```bash
curl -X POST https://api.gameverse.com.br/library/add \
-H "Content-Type: application/json" \
-H "Authorization: Bearer <token>" \
-d '{
"user_id": 1,
"type": "game",
"item_id": 123,
"title": "The Witcher 3",
"platform": "Steam"
}'
```
### cURL - Listar Biblioteca
```bash
curl -X GET https://api.gameverse.com.br/library/user/1 \
-H "Authorization: Bearer <token>"
```
### JavaScript (Fetch)
```javascript
// Adicionar item
fetch('https://api.gameverse.com.br/library/add', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer <token>'
},
body: JSON.stringify({
user_id: 1,
type: 'game',
item_id: 123,
title: 'The Witcher 3',
platform: 'Steam'
})
})
.then(res => res.json())
.then(data => console.log(data));
```
---
## Contato
Desenvolvido por: André de Oliveira Braga e Izadora Lima de Mendonça
Projeto GameVerse - Microsserviços
Centro Universitário Uninorte - Curso de Sistemas de Informação

2893
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -1,30 +1,32 @@
{ {
"name": "library-service", "name": "library-service",
"version": "1.0.0", "version": "1.0.0",
"description": "🎮 Microsserviço da Biblioteca do Usuário - GameVerse. Gerencia jogos comprados e gift cards dos usuários.", "description": "🎮 Microsserviço da Biblioteca do Usuário - GameVerse. Gerencia jogos comprados e gift cards dos usuários.",
"main": "app.js", "main": "app.js",
"scripts": { "scripts": {
"start": "node app.js", "start": "node app.js",
"dev": "nodemon app.js", "dev": "nodemon app.js",
"test": "echo \"Para testar, use o arquivo tests.http com REST Client\"", "test": "echo \"Para testar, use o arquivo tests.http com REST Client\"",
"setup-db": "echo \"Execute o arquivo schema.sql no MySQL Workbench\"" "setup-db": "echo \"Execute o arquivo schema.sql no MySQL Workbench\""
}, },
"keywords": ["gameverse", "library", "microservice", "nodejs", "mysql"], "keywords": ["gameverse", "library", "microservice", "nodejs", "mysql"],
"author": "André de Oliveira Braga e Izadora Lima de Mendonça", "author": "André de Oliveira Braga e Izadora Lima de Mendonça",
"contributors": [ "contributors": [
"André de Oliveira Braga", "André de Oliveira Braga",
"Izadora Lima de Mendonça" "Izadora Lima de Mendonça"
], ],
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"express": "^4.18.2", "dotenv": "^16.4.0",
"mysql2": "^3.9.0", "express": "^4.18.2",
"cors": "^2.8.5" "jsonwebtoken": "^9.0.2",
}, "mysql2": "^3.9.0",
"devDependencies": { "cors": "^2.8.5"
"nodemon": "^3.0.0" },
}, "devDependencies": {
"engines": { "nodemon": "^3.0.0"
"node": ">=14.0.0" },
} "engines": {
"node": ">=14.0.0"
}
} }