Storage: use worker threads message passing to store performance records from
[e-mobility-charging-stations-simulator.git] / src / charging-station / ocpp / OCPPIncomingRequestService.ts
index 897127b6e2ffa029073db6e365c969356c4490da..7e2fa1894935f97ff2b598ca6884d45507096342 100644 (file)
@@ -1,5 +1,6 @@
 import ChargingStation from '../ChargingStation';
 import { IncomingRequestCommand } from '../../types/ocpp/Requests';
+import logger from '../../utils/Logger';
 
 export default abstract class OCPPIncomingRequestService {
   protected chargingStation: ChargingStation;
@@ -8,5 +9,13 @@ export default abstract class OCPPIncomingRequestService {
     this.chargingStation = chargingStation;
   }
 
+  protected handleIncomingRequestError(commandName: IncomingRequestCommand, error: Error, errorOcppResponse?: Record<string, unknown>): unknown {
+    logger.error(this.chargingStation.logPrefix() + ' Incoming request command ' + commandName + ' error: %j', error);
+    if (errorOcppResponse) {
+      return errorOcppResponse;
+    }
+    throw error;
+  }
+
   public abstract handleRequest(messageId: string, commandName: IncomingRequestCommand, commandPayload: Record<string, unknown>): Promise<void>;
 }