UNPKG

@ministryofjustice/hmpps-digital-prison-reporting-frontend

Version:

The Digital Prison Reporting Frontend contains templates and code to help display data effectively in UI applications.

114 lines (100 loc) 3.64 kB
import { components } from '../types/api' import type ReportingClient from '../data/reportingClient' import ReportQuery from '../types/ReportQuery' import Dict = NodeJS.Dict import { ListWithWarnings } from '../data/types' import logger from '../utils/logger' export default class ReportingService { constructor(private readonly reportingClient: ReportingClient) { this.reportingClient = reportingClient logger.info('Service created: ReportingService') } async getCount(resourceName: string, token: string, listRequest: ReportQuery): Promise<number> { return this.reportingClient.getCount(resourceName, token, listRequest) } async getList(resourceName: string, token: string, listRequest: ReportQuery): Promise<Array<NodeJS.Dict<string>>> { return this.reportingClient.getList(resourceName, token, listRequest) } async getListWithWarnings(resourceName: string, token: string, listRequest: ReportQuery): Promise<ListWithWarnings> { return this.reportingClient.getListWithWarnings(resourceName, token, listRequest) } async getDefinitions( token: string, dataProductDefinitionsPath?: string, ): Promise<Array<components['schemas']['ReportDefinitionSummary']>> { return this.reportingClient.getDefinitions(token, dataProductDefinitionsPath) } async getDefinition( token: string, reportId: string, variantId: string, dataProductDefinitionsPath?: string, ): Promise<components['schemas']['SingleVariantReportDefinition']> { return this.reportingClient.getDefinition(token, reportId, variantId, dataProductDefinitionsPath) } async requestAsyncReport( token: string, reportId: string, variantId: string, query: Record<string, string | boolean | number>, ): Promise<Dict<string>> { return this.reportingClient.requestAsyncReport(token, reportId, variantId, query) } async cancelAsyncRequest( token: string, reportId: string, variantId: string, executionId: string, dataProductDefinitionsPath?: string, ): Promise<Dict<string>> { return this.reportingClient.cancelAsyncRequest(token, reportId, variantId, executionId, dataProductDefinitionsPath) } async getAsyncReport( token: string, reportId: string, variantId: string, tableId: string, query: Dict<string | number>, ): Promise<Array<Dict<string>>> { return this.reportingClient.getAsyncReport(token, reportId, variantId, tableId, query) } async getAsyncSummaryReport( token: string, reportId: string, variantId: string, tableId: string, summaryId: string, query: Dict<string | number>, ): Promise<Array<Dict<string>>> { return this.reportingClient.getAsyncSummaryReport(token, reportId, variantId, tableId, summaryId, query) } async getAsyncReportStatus( token: string, reportId: string, variantId: string, executionId: string, dataProductDefinitionsPath: string, tableId: string, ): Promise<Dict<string>> { return this.reportingClient.getAsyncReportStatus( token, reportId, variantId, executionId, dataProductDefinitionsPath, tableId, ) } async getAsyncCount(token: string, tableId: string, dataProductDefinitionsPath?: string): Promise<number> { return this.reportingClient.getAsyncCount(token, tableId, dataProductDefinitionsPath) } async getAsyncInteractiveCount( token: string, tableId: string, reportId: string, id: string, filters: ReportQuery, ): Promise<number> { return this.reportingClient.getAsyncInteractiveCount(token, tableId, reportId, id, filters) } }