Skip to content
Snippets Groups Projects
Commit 6109aa5b authored by Amanda Pollyanna da Silva Rodrigues's avatar Amanda Pollyanna da Silva Rodrigues
Browse files

Issue #4: ADD function getUserPurchases + route

parent b807c591
No related branches found
No related tags found
No related merge requests found
......@@ -3,7 +3,6 @@ import { implantsTable, purchasesTable, usersTable} from '@/db/schema';
import { db } from "@/db";
import { eq } from 'drizzle-orm';
import { implantSchema, updateImplantSchema } from '@/validators/implantsValidator';
import { error } from 'console';
export default class implant{
static implantRequestValidation (req: Request){
......@@ -173,4 +172,34 @@ export default class implant{
return res.status(500).json({ error: "Erro ao realizar a compra" });
}
}
static getUserPurchases = async (req: Request, res: Response): Promise<any> => {
try {
// Extrair ID do usuário do token
const reqAuth = req as any;
const userId = reqAuth.user.id;
// Buscar todas as compras do usuário
const purchases = await db.select()
.from(purchasesTable)
.where(eq(purchasesTable.user_id, userId));
// Para cada compra, buscar detalhes do implante
const purchasesWithImplants = await Promise.all(
purchases.map(async (purchase) => {
const implantDetails = await implant.getImplant(purchase.implant_id);
return {
...purchase,
implant: implantDetails
};
})
);
return res.status(200).json(purchasesWithImplants);
} catch (error) {
console.error(error);
return res.status(500).json({ error: "Erro ao buscar compras do usuário" });
}
}
}
......@@ -32,7 +32,7 @@ app.get('/getImplant/:id', implant.implantRead)
app.put('/updateImplant/:id', tokenAuthenticator, implant.implantUpdate)
app.delete('/deleteImplant/:id', tokenAuthenticator, implant.implantDelete)
app.post('/purchase', tokenAuthenticator, implant.implantBuy)
app.get('/purchases/user', tokenAuthenticator, implant.getUserPurchases);
// Definir a porta e iniciar o servidor
const PORT = process.env['PORT'] || 3000
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment