UNPKG

@causalfoundry/js-sdk

Version:

Causal Foundry WEB SDK (JS/TS)

58 lines (53 loc) 2.03 kB
import CfExceptionHandler from "../../core/CfExceptionHandler"; import {checkObjectFieldEmptyiness, isISOLocal} from "../../utils"; import {injectCatalog} from "../../core/injector"; import {AmbulanceCatalog, EmergencyMgmtCatalogType, EROCatalog} from "./typings"; export async function validateAndSaveEROCatalog(eroId: string, properties: EROCatalog) { if (!eroId) { new CfExceptionHandler().throwAndLogError( "ERO catalog", "invalid ERO catalog id" ); } else if (!properties.status) { new CfExceptionHandler().throwAndLogError( "ERO catalog", "invalid ERO catalog status" ); } else if ( properties.joining_date && !isISOLocal(properties.joining_date) ) { new CfExceptionHandler().throwAndLogError( "ERO catalog", "Invalid ambulance gps_datetime: should be in ISO8601 format e.g. 1937-01-01T12:00:27.87+02:00" ); } else if ( properties.supervisor_id_list && properties.supervisor_id_list.some((item) => item.trim() === "") ) { new CfExceptionHandler().throwAndLogError( "ERO catalog", "invalid ERO catalog supervisor_id_list provided" ); } checkObjectFieldEmptyiness(properties, [ "supervisor_id_list", "site_id_list", ]); injectCatalog(eroId, EmergencyMgmtCatalogType.ERO, properties); } export async function validateAndSaveAmbulanceCatalog(ambulanceId: string, properties: AmbulanceCatalog) { if (!ambulanceId) { new CfExceptionHandler().throwAndLogError( "Ambulance catalog", "invalid Ambulance catalog id" ); } else if (!properties.type) { new CfExceptionHandler().throwAndLogError( "Ambulance catalog", "invalid Ambulance catalog type" ); } checkObjectFieldEmptyiness(properties, ["type"]); injectCatalog(ambulanceId, EmergencyMgmtCatalogType.Ambulance, properties); }