Fixes to OCA OCPP 2.0.1 JSON schemas
[e-mobility-charging-stations-simulator.git] / src / charging-station / ocpp / OCPPRequestService.ts
index 6b58e2adba0b0b06fbb514a2960d3d6eb80c3fe6..e4890a91d8a6a88e2c8d282fcd603c2b2c31baef 100644 (file)
@@ -38,6 +38,7 @@ export default abstract class OCPPRequestService {
   protected constructor(version: OCPPVersion, ocppResponseService: OCPPResponseService) {
     this.version = version;
     this.ajv = new Ajv({
+      keywords: ['javaType'],
       multipleOfPrecision: 2,
     });
     ajvFormats(this.ajv);
@@ -140,7 +141,7 @@ export default abstract class OCPPRequestService {
       return true;
     }
     const validate = this.ajv.compile(schema);
-    this.convertDateToISOString<T>(payload);
+    OCPPServiceUtils.convertDateToISOString<T>(payload);
     if (validate(payload)) {
       return true;
     }
@@ -385,16 +386,6 @@ export default abstract class OCPPRequestService {
     }
   }
 
-  private convertDateToISOString<T extends JsonType>(obj: T): void {
-    for (const k in obj) {
-      if (obj[k] instanceof Date) {
-        (obj as JsonObject)[k] = (obj[k] as Date).toISOString();
-      } else if (obj[k] !== null && typeof obj[k] === 'object') {
-        this.convertDateToISOString<T>(obj[k] as T);
-      }
-    }
-  }
-
   // eslint-disable-next-line @typescript-eslint/no-unused-vars
   public abstract requestHandler<ReqType extends JsonType, ResType extends JsonType>(
     chargingStation: ChargingStation,