Enviar arquivos para "/"

This commit is contained in:
2026-04-28 00:33:33 +00:00
parent a566c14b66
commit ec5b03e76e
3 changed files with 203 additions and 0 deletions

108
README.md Normal file
View File

@@ -0,0 +1,108 @@
# Biblioteca do Usuário - GameVerse
Este é o microsserviço da Biblioteca do Usuário para o projeto GameVerse.
Eu sou responsável por guardar jogos e gift cards que os usuários compraram.
Aqui eu mantenho a coleção digital de cada usuário organizada e acessível.
## Minha responsabilidade
- Guardar jogos comprados pelo usuário
- Guardar gift cards adquiridos
- Manter o histórico de aquisições
- Expor a biblioteca digital para outros serviços
## Tecnologias usadas
- Node.js
- Express.js
- MySQL
- CORS
## Estrutura de dados
Tabela: `users_library`
```sql
CREATE TABLE users_library (
id INT AUTO_INCREMENT PRIMARY KEY,
user_id INT NOT NULL,
type ENUM('game', 'gift_card') NOT NULL,
item_id INT NOT NULL,
title VARCHAR(255) NOT NULL,
platform VARCHAR(100),
acquired_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
```
## Endpoints da API
### POST /library/add
Adiciona um item manualmente à biblioteca do usuário.
Exemplo de request:
```json
{
"user_id": 1,
"type": "game",
"item_id": 123,
"title": "The Witcher 3",
"platform": "Steam"
}
```
### GET /library/user/:user_id
Retorna todos os itens da biblioteca de um usuário.
### POST /library/integration/payment-approved
Recebe confirmação de pagamento aprovado e adiciona o item à biblioteca.
## Fluxo de integração
1. Recebo dados do serviço de pagamentos
2. Verifico se o item já está na biblioteca
3. Se não estiver, adiciono ao banco
4. Retorno confirmação de sucesso ou erro
## Dados de teste
Usuário 1:
- Jogo: "The Witcher 3: Wild Hunt" (Steam)
- Gift Card: "Steam Gift Card $50"
Usuário 2:
- Jogo: "Cyberpunk 2077" (Epic Games)
- Jogo: "FIFA 24" (EA Play)
## Como executar
1. Instalar dependências:
```bash
npm install
```
2. Criar o banco de dados `gameverse_library` e executar `schema.sql`
3. Iniciar o serviço:
```bash
npm start
```
O serviço estará disponível em `http://localhost:3005`
## Padrão de respostas
Todas as respostas seguem este formato:
```json
{
"success": boolean,
"message": string,
"data": any,
"error": any
}
```
---
Desenvolvido por:
- André de Oliveira Braga
- Izadora Lima de Mendonça
Centro Universitário Uninorte - Curso de Sistemas de Informação

41
schema.sql Normal file
View File

@@ -0,0 +1,41 @@
-- 🎮 SCHEMA DO BANCO DE DADOS - Biblioteca do Usuário GameVerse
-- Este arquivo cria minha "casa" no banco de dados!
-- Cada microsserviço tem seu próprio banco, lembra? Isso me deixa independente.
-- Criando meu banco de dados exclusivo
CREATE DATABASE IF NOT EXISTS gameverse_library;
USE gameverse_library;
-- Minha tabela principal: users_library
-- Aqui eu guardo TODOS os jogos e gift cards que os usuários compraram
CREATE TABLE users_library (
id INT AUTO_INCREMENT PRIMARY KEY, -- ID único para cada item na biblioteca
user_id INT NOT NULL, -- ID do usuário dono do item
type ENUM('game', 'gift_card') NOT NULL, -- Tipo: jogo ou cartão presente
item_id INT NOT NULL, -- ID do item no catálogo geral
title VARCHAR(255) NOT NULL, -- Nome do jogo ou gift card
platform VARCHAR(100), -- Plataforma (Steam, Epic, etc.)
acquired_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, -- Quando ganhou isso na biblioteca
-- Índices para buscas rápidas (como um catálogo organizado!)
INDEX idx_user_id (user_id), -- Para buscar biblioteca de um usuário
INDEX idx_item_id (item_id), -- Para verificar se já tem o item
INDEX idx_type (type) -- Para separar jogos de gift cards
);
-- 🎭 DADOS DE TESTE - Para desenvolvimento e testes
-- Estes são exemplos de bibliotecas que uso para testar se tudo funciona
INSERT INTO users_library (user_id, type, item_id, title, platform) VALUES
-- Biblioteca do usuário 1 (tem um jogo e um gift card)
(1, 'game', 1, 'The Witcher 3: Wild Hunt', 'Steam'),
(1, 'gift_card', 2, 'Steam Gift Card $50', 'Steam'),
-- Biblioteca do usuário 2 (tem dois jogos)
(2, 'game', 3, 'Cyberpunk 2077', 'Epic Games'),
(2, 'game', 4, 'FIFA 24', 'EA Play');
-- Agora meu banco está pronto! 🎉
-- Posso guardar jogos, gift cards, e mostrar para os usuários suas coleções!
-- 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

54
tests.http Normal file
View File

@@ -0,0 +1,54 @@
# 🧪 TESTES DA API - Biblioteca do Usuário GameVerse
# Este arquivo contém exemplos de como testar meus endpoints
# Use com REST Client no VS Code ou qualquer ferramenta HTTP
### 1. Testar adicionar item manualmente
POST http://localhost:3005/library/add
Content-Type: application/json
{
"user_id": 1,
"type": "game",
"item_id": 999,
"title": "Test Game",
"platform": "Steam"
}
### 2. Ver biblioteca do usuário 1
GET http://localhost:3005/library/user/1
### 3. Ver biblioteca do usuário 2
GET http://localhost:3005/library/user/2
### 4. Simular pagamento aprovado (integração)
POST http://localhost:3005/library/integration/payment-approved
Content-Type: application/json
{
"user_id": 1,
"type": "gift_card",
"item_id": 888,
"title": "Epic Games Gift Card $25",
"platform": "Epic Games"
}
### 5. Testar erro - dados faltando
POST http://localhost:3005/library/add
Content-Type: application/json
{
"user_id": 1
// Faltam type, item_id, title
}
### 6. Testar erro - tipo inválido
POST http://localhost:3005/library/add
Content-Type: application/json
{
"user_id": 1,
"type": "filme", // Tipo inválido
"item_id": 123,
"title": "Test Movie",
"platform": "Netflix"
}