Initial cleanup at loading JSON schemas
[e-mobility-charging-stations-simulator.git] / src / charging-station / ocpp / 2.0 / OCPP20IncomingRequestService.ts
index c3a241d4874b170addeb60dc9d992c4eda5f5817..7a0b1e6fc202eb5b7e22579aa69bf55a1e2ed396 100644 (file)
@@ -9,17 +9,14 @@ import type { JSONSchemaType } from 'ajv';
 import OCPPError from '../../../exception/OCPPError';
 import type { JsonObject, JsonType } from '../../../types/JsonType';
 import {
-  OCPP20ClearCacheRequest,
+  type OCPP20ClearCacheRequest,
   OCPP20IncomingRequestCommand,
 } from '../../../types/ocpp/2.0/Requests';
-import type { OCPP20ClearCacheResponse } from '../../../types/ocpp/2.0/Responses';
 import { ErrorType } from '../../../types/ocpp/ErrorType';
 import { OCPPVersion } from '../../../types/ocpp/OCPPVersion';
 import type { IncomingRequestHandler } from '../../../types/ocpp/Requests';
 import logger from '../../../utils/Logger';
 import type ChargingStation from '../../ChargingStation';
-import { ChargingStationUtils } from '../../ChargingStationUtils';
-import OCPPConstants from '../OCPPConstants';
 import OCPPIncomingRequestService from '../OCPPIncomingRequestService';
 import { OCPP20ServiceUtils } from './OCPP20ServiceUtils';
 
@@ -40,15 +37,9 @@ export default class OCPP20IncomingRequestService extends OCPPIncomingRequestSer
     this.jsonSchemas = new Map<OCPP20IncomingRequestCommand, JSONSchemaType<JsonObject>>([
       [
         OCPP20IncomingRequestCommand.CLEAR_CACHE,
-        JSON.parse(
-          fs.readFileSync(
-            path.resolve(
-              path.dirname(fileURLToPath(import.meta.url)),
-              '../../../assets/json-schemas/ocpp/2.0/ClearCacheRequest.json'
-            ),
-            'utf8'
-          )
-        ) as JSONSchemaType<OCPP20ClearCacheRequest>,
+        this.parseJsonSchemaFile<OCPP20ClearCacheRequest>(
+          '../../../assets/json-schemas/ocpp/2.0/ClearCacheRequest.json'
+        ),
       ],
     ]);
     this.validatePayload.bind(this);
@@ -63,9 +54,9 @@ export default class OCPP20IncomingRequestService extends OCPPIncomingRequestSer
     let response: JsonType;
     if (
       chargingStation.getOcppStrictCompliance() === true &&
-      chargingStation.isInPendingState() === true /* &&
-       (commandName === OCPP20IncomingRequestCommand.REMOTE_START_TRANSACTION ||
-        commandName === OCPP20IncomingRequestCommand.REMOTE_STOP_TRANSACTION ) */
+      chargingStation.isInPendingState() === true &&
+      (commandName === OCPP20IncomingRequestCommand.REQUEST_START_TRANSACTION ||
+        commandName === OCPP20IncomingRequestCommand.REQUEST_STOP_TRANSACTION)
     ) {
       throw new OCPPError(
         ErrorType.SECURITY_ERROR,
@@ -155,10 +146,12 @@ export default class OCPP20IncomingRequestService extends OCPPIncomingRequestSer
     return false;
   }
 
-  private handleRequestClearCache(chargingStation: ChargingStation): OCPP20ClearCacheResponse {
-    chargingStation.authorizedTagsCache.deleteAuthorizedTags(
-      ChargingStationUtils.getAuthorizationFile(chargingStation.stationInfo)
-    );
-    return OCPPConstants.OCPP_RESPONSE_ACCEPTED;
+  private parseJsonSchemaFile<T extends JsonType>(relativePath: string): JSONSchemaType<T> {
+    return JSON.parse(
+      fs.readFileSync(
+        path.resolve(path.dirname(fileURLToPath(import.meta.url)), relativePath),
+        'utf8'
+      )
+    ) as JSONSchemaType<T>;
   }
 }