Create invoicing data retriever
parent
c8bdbf9e0a
commit
05fae31c49
|
|
@ -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,
|
||||
};
|
||||
}
|
||||
}
|
||||
|
|
@ -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,
|
||||
|
|
|
|||
Loading…
Reference in New Issue