diff --git a/src/controller/invoice.controller.ts b/src/controller/invoice.controller.ts new file mode 100644 index 0000000..c2a726e --- /dev/null +++ b/src/controller/invoice.controller.ts @@ -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, + }; + } +} diff --git a/src/controller/session.controller.ts b/src/controller/session.controller.ts index 22a4735..7517729 100644 --- a/src/controller/session.controller.ts +++ b/src/controller/session.controller.ts @@ -21,7 +21,6 @@ export class SessionController { public async getAllSessions(@Req() request) { const userId = request.userId; const sessions = await this.sessionService.getAllSessions(); - const user = await this.userService.getUserById(userId); return sessions.map((session) => ({ id: session.id, size: session.size,