import Http from "../utilities/http"; import makeErrorsPretty from "../utilities/make_errors_pretty"; import type { ApiInspectReport, ApiInspectReportEntry, User } from "../models"; import type { AssociationIds } from "type_aliases"; export default class ReportApi { static createInspectReport({ projectId }: AssociationIds, report: ApiInspectReport, user: User): Promise { let url = `${Http.baseUrl()}/projects/${projectId}/reports`; return Http.post(url, user, report) as unknown as Promise; } static listInspectReports({ projectId }: AssociationIds, user: User): Promise { let url = `${Http.baseUrl()}/projects/${projectId}/reports`; return Http.get(url, user) as unknown as Promise; } static listInspectReportEntries({ projectId, inspectReportId }: AssociationIds, user: User): Promise { let url = `${Http.baseUrl()}/projects/${projectId}/reports/${inspectReportId}/inspect-entries`; return Http.get(url, user) as unknown as Promise; } static createInspectReportEntries({ projectId, inspectReportId }: AssociationIds, reportEntries: ApiInspectReportEntry[], user: User): Promise { let url = `${Http.baseUrl()}/projects/${projectId}/reports/${inspectReportId}/inspect-entries`; return Http.post(url, user, reportEntries) as unknown as Promise; } static updateInspectReportEntry({ projectId, inspectReportId, inspectReportEntryId }: AssociationIds, reportEntry, user): Promise { let url = `${Http.baseUrl()}/projects/${projectId}/reports/${inspectReportId}/inspect-entries/${inspectReportEntryId}`; return Http.put(url, user, reportEntry) as unknown as Promise; } static updateInspectReport({ projectId, inspectReportId }: AssociationIds, report, user): Promise { let url = `${Http.baseUrl()}/projects/${projectId}/reports/${inspectReportId}`; return Http.put(url, user, report) as unknown as Promise; } static deleteInspectReport({ projectId, inspectReportId }: AssociationIds, user): Promise { let url = `${Http.baseUrl()}/projects/${projectId}/reports/${inspectReportId}`; return Http.delete(url, user) as unknown as Promise; } static deleteInspectReportEntry({ projectId, inspectReportId, inspectReportEntryId }: AssociationIds, user: User): Promise { let url = `${Http.baseUrl()}/projects/${projectId}/reports/${inspectReportId}/inspect-entries/${inspectReportEntryId}`; return Http.delete(url, user) as unknown as Promise; } } makeErrorsPretty(ReportApi);