apps/recallassess/recallassess-api/src/api/admin/report/reports/invoice-summary/invoice-summary.controller.ts
api/admin/report/invoice-summary
Dashboard filter valuelists for invoice-summary (company + course per enrollment scope).
Full JSON: GET /api/report/data/invoice-summary (InvoiceSummaryDataResolver).
Methods |
|
| Async filterCompany | ||||||
filterCompany(query: Record
|
||||||
Decorators :
@Get('filter/company')
|
||||||
|
Parameters :
Returns :
unknown
|
| Async filterCourse | ||||||
filterCourse(query: Record
|
||||||
Decorators :
@Get('filter/course')
|
||||||
|
Parameters :
Returns :
unknown
|
import { Controller, Get, HttpCode, HttpStatus, Query } from "@nestjs/common";
import { firstQueryString, parseOptionalQueryInt, parseSqEqualsInt } from "../../utils/report-query-params.util";
import { parseReportValuelistListQuery } from "../../utils/report-valuelist-query.util";
import { ParticipantScopeFiltersService } from "../shared/participant-scope-filters.service";
/**
* Dashboard filter valuelists for **`invoice-summary`** (company + course per enrollment scope).
* Full JSON: **`GET /api/report/data/invoice-summary`** (**`InvoiceSummaryDataResolver`**).
*/
@Controller("api/admin/report/invoice-summary")
export class InvoiceSummaryController {
constructor(private readonly participantScopeFilters: ParticipantScopeFiltersService) {}
@Get("filter/company")
@HttpCode(HttpStatus.OK)
async filterCompany(@Query() query: Record<string, string | string[] | undefined>) {
return this.participantScopeFilters.listCompanyFilterOptions(parseReportValuelistListQuery(query));
}
@Get("filter/course")
@HttpCode(HttpStatus.OK)
async filterCourse(@Query() query: Record<string, string | string[] | undefined>) {
const sq = firstQueryString(query["sq"]);
const companyId =
parseOptionalQueryInt(firstQueryString(query["company_id"])) ?? parseSqEqualsInt(sq, "company_id");
return this.participantScopeFilters.listCourseFilterOptions({
...parseReportValuelistListQuery(query),
companyId,
});
}
}