Remove unneeded type check in isEmptyObject().
[e-mobility-charging-stations-simulator.git] / src / charging-station / ocpp / OCPPRequestService.ts
index 653679e9b9e5b3452bcf508dc8a2be886022ff51..29c740a187310d11fe5a0dedf4ea3e05de8d016c 100644 (file)
@@ -28,7 +28,7 @@ const moduleName = 'OCPPRequestService';
 
 export default abstract class OCPPRequestService {
   private static instance: OCPPRequestService | null = null;
-  private ajv: Ajv;
+  private readonly ajv: Ajv;
 
   private readonly ocppResponseService: OCPPResponseService;
 
@@ -37,6 +37,7 @@ export default abstract class OCPPRequestService {
     this.ajv = new Ajv();
     ajvFormats(this.ajv);
     this.requestHandler.bind(this);
+    this.sendMessage.bind(this);
     this.sendResponse.bind(this);
     this.sendError.bind(this);
     this.internalSendMessage.bind(this);
@@ -71,7 +72,7 @@ export default abstract class OCPPRequestService {
       );
     } catch (error) {
       this.handleSendMessageError(chargingStation, commandName, error as Error, {
-        throwError: false,
+        throwError: true,
       });
     }
   }
@@ -116,9 +117,7 @@ export default abstract class OCPPRequestService {
         params
       );
     } catch (error) {
-      this.handleSendMessageError(chargingStation, commandName, error as Error, {
-        throwError: false,
-      });
+      this.handleSendMessageError(chargingStation, commandName, error as Error);
     }
   }
 
@@ -160,11 +159,13 @@ export default abstract class OCPPRequestService {
     }
   ): Promise<ResponseType> {
     if (
-      (chargingStation.isInUnknownState() && commandName === RequestCommand.BOOT_NOTIFICATION) ||
-      (!chargingStation.getOcppStrictCompliance() && chargingStation.isInUnknownState()) ||
-      chargingStation.isInAcceptedState() ||
-      (chargingStation.isInPendingState() &&
-        (params.triggerMessage || messageType === MessageType.CALL_RESULT_MESSAGE))
+      (chargingStation.isInUnknownState() === true &&
+        commandName === RequestCommand.BOOT_NOTIFICATION) ||
+      (chargingStation.getOcppStrictCompliance() === false &&
+        chargingStation.isInUnknownState() === true) ||
+      chargingStation.isInAcceptedState() === true ||
+      (chargingStation.isInPendingState() === true &&
+        (params.triggerMessage === true || messageType === MessageType.CALL_RESULT_MESSAGE))
     ) {
       // eslint-disable-next-line @typescript-eslint/no-this-alias
       const self = this;
@@ -364,10 +365,10 @@ export default abstract class OCPPRequestService {
     chargingStation: ChargingStation,
     commandName: RequestCommand | IncomingRequestCommand,
     error: Error,
-    params: HandleErrorParams<EmptyObject> = { throwError: true }
+    params: HandleErrorParams<EmptyObject> = { throwError: false }
   ): void {
     logger.error(`${chargingStation.logPrefix()} Request command '${commandName}' error:`, error);
-    if (params?.throwError) {
+    if (params?.throwError === true) {
       throw error;
     }
   }