Enviar arquivos para "/"
This commit is contained in:
33
libraryModel.js
Normal file
33
libraryModel.js
Normal file
@@ -0,0 +1,33 @@
|
||||
const db = require('../config/db');
|
||||
|
||||
// Este arquivo é o nosso "guarda-roupa" - aqui guardamos todas as funções
|
||||
// que interagem diretamente com o banco de dados da biblioteca.
|
||||
// Seguimos o padrão MVC: Model lida com dados, Controller com lógica, View com apresentação.
|
||||
|
||||
// Função para adicionar um item (jogo ou gift card) à biblioteca do usuário.
|
||||
// É chamada quando um pagamento é aprovado ou quando queremos adicionar manualmente.
|
||||
exports.addItem = (data, callback) => {
|
||||
// SQL preparado para evitar injeção de código malicioso
|
||||
// Campos: user_id (quem comprou), type (jogo ou gift card), item_id (ID do item),
|
||||
// title (nome do jogo/gift), platform (onde roda ou vale)
|
||||
const sql = `INSERT INTO users_library (user_id, type, item_id, title, platform)
|
||||
VALUES (?, ?, ?, ?, ?)`;
|
||||
|
||||
// Executa a query com os dados sanitizados
|
||||
db.query(sql, [data.user_id, data.type, data.item_id, data.title, data.platform], callback);
|
||||
};
|
||||
|
||||
// Função que busca TODOS os itens da biblioteca de um usuário específico.
|
||||
// É usada quando o usuário quer ver sua coleção completa.
|
||||
exports.getUserLibrary = (user_id, callback) => {
|
||||
// Query simples mas eficiente - busca tudo do usuário
|
||||
db.query('SELECT * FROM users_library WHERE user_id = ?', [user_id], callback);
|
||||
};
|
||||
|
||||
// Função importante para evitar duplicatas!
|
||||
// Antes de adicionar um item, verificamos se o usuário já não o tem.
|
||||
// Isso evita que alguém compre o mesmo jogo duas vezes por acidente.
|
||||
exports.checkItem = (user_id, item_id, callback) => {
|
||||
// Busca se existe algum registro com esse usuário e item
|
||||
db.query('SELECT * FROM users_library WHERE user_id = ? AND item_id = ?', [user_id, item_id], callback);
|
||||
};
|
||||
26
libraryRoutes.js
Normal file
26
libraryRoutes.js
Normal file
@@ -0,0 +1,26 @@
|
||||
const express = require('express');
|
||||
const router = express.Router();
|
||||
const controller = require('../controllers/libraryController');
|
||||
|
||||
// Este arquivo define as "portas de entrada" da nossa API!
|
||||
// Cada rota é como uma porta específica do prédio - cada uma leva a um lugar diferente.
|
||||
// Seguimos convenções REST: POST para criar, GET para buscar.
|
||||
|
||||
// Rota para adicionar um item manualmente à biblioteca
|
||||
// Método: POST /library/add
|
||||
// Uso: Para correções ou imports especiais (não para compras normais)
|
||||
router.post('/add', controller.addItem);
|
||||
|
||||
// Rota para buscar toda a biblioteca de um usuário
|
||||
// Método: GET /library/user/:user_id
|
||||
// Exemplo: GET /library/user/123 retorna todos os jogos e gift cards do usuário 123
|
||||
router.get('/user/:user_id', controller.getLibrary);
|
||||
|
||||
// Rota CRUCIAL para integração com o serviço de pagamentos!
|
||||
// Método: POST /library/integration/payment-approved
|
||||
// Esta rota é chamada AUTOMATICAMENTE quando um pagamento é aprovado.
|
||||
// É o elo entre "comprou" e "recebeu na biblioteca".
|
||||
router.post('/integration/payment-approved', controller.paymentApproved);
|
||||
|
||||
// Exportamos o router para que o app.js possa usar essas rotas
|
||||
module.exports = router;
|
||||
16
mime
Normal file
16
mime
Normal file
@@ -0,0 +1,16 @@
|
||||
#!/bin/sh
|
||||
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
||||
|
||||
case `uname` in
|
||||
*CYGWIN*|*MINGW*|*MSYS*)
|
||||
if command -v cygpath > /dev/null 2>&1; then
|
||||
basedir=`cygpath -w "$basedir"`
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
||||
if [ -x "$basedir/node" ]; then
|
||||
exec "$basedir/node" "$basedir/../mime/cli.js" "$@"
|
||||
else
|
||||
exec node "$basedir/../mime/cli.js" "$@"
|
||||
fi
|
||||
Reference in New Issue
Block a user