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) {
|
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,
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue