@causalfoundry/js-sdk
Version:
Causal Foundry WEB SDK (JS/TS)
58 lines (53 loc) • 2.03 kB
text/typescript
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);
}