Create invoicing data retriever

main
MiguelMLorente 2025-12-07 00:03:11 +01:00
parent c8bdbf9e0a
commit 05fae31c49
2 changed files with 38 additions and 1 deletions

View File

@ -0,0 +1,38 @@
import { Controller, Get, Req } from '@nestjs/common';
import { PurchaseService } from 'src/service/purchase.service';
import { SessionService } from 'src/service/session.service';
import { UserService } from 'src/service/user.service';
@Controller('/invoice')
export class InvoiceController {
constructor(
private readonly userService: UserService,
private readonly purchaseService: PurchaseService,
private readonly sessionService: SessionService,
) {}
@Get()
public async getAllInvoices(@Req() request) {
const userId = request.userId;
const user = await this.userService.getUserById(userId);
const purchases = await this.purchaseService.getPurchasesForUser(user);
const sessions = (await this.sessionService.getAllSessions()).filter(
(session) => session.users.find((u) => u.id === userId),
);
const purchaseData = purchases.map((purchase) => ({
product: purchase.purchasedProduct,
units: purchase.purchasedUnits,
status: purchase.status,
}));
const sessionsData = sessions.map((session) => ({
date: session.date,
status: session.status,
}));
return {
purchaseData,
sessionsData,
};
}
}

View File

@ -21,7 +21,6 @@ export class SessionController {
public async getAllSessions(@Req() request) { public async getAllSessions(@Req() request) {
const userId = request.userId; const userId = request.userId;
const sessions = await this.sessionService.getAllSessions(); const sessions = await this.sessionService.getAllSessions();
const user = await this.userService.getUserById(userId);
return sessions.map((session) => ({ return sessions.map((session) => ({
id: session.id, id: session.id,
size: session.size, size: session.size,