refactor: cleanup loops over object keys
[e-mobility-charging-stations-simulator.git] / src / charging-station / ui-server / ui-services / AbstractUIService.ts
index 0531011f95b6397bbbb432f932de31db7b2cf33a..ab2c1167e934dc789537dfb679c4755eb2e0f975 100644 (file)
@@ -11,7 +11,7 @@ import {
   type ResponsePayload,
   ResponseStatus,
 } from '../../../types';
-import { Utils, logger } from '../../../utils';
+import { isNotEmptyArray, isNullOrUndefined, logger } from '../../../utils';
 import { Bootstrap } from '../../Bootstrap';
 import { UIServiceWorkerBroadcastChannel } from '../../broadcast-channel/UIServiceWorkerBroadcastChannel';
 import type { AbstractUIServer } from '../AbstractUIServer';
@@ -19,7 +19,7 @@ import type { AbstractUIServer } from '../AbstractUIServer';
 const moduleName = 'AbstractUIService';
 
 export abstract class AbstractUIService {
-  protected static readonly ProcedureNameToBroadCastChannelProcedureNameMap: Omit<
+  protected static readonly ProcedureNameToBroadCastChannelProcedureNameMapping: Omit<
     Record<ProcedureName, BroadcastChannelProcedureName>,
     | ProcedureName.START_SIMULATOR
     | ProcedureName.STOP_SIMULATOR
@@ -100,7 +100,7 @@ export abstract class AbstractUIService {
         errorDetails: (error as OCPPError).details,
       };
     }
-    if (!Utils.isNullOrUndefined(responsePayload)) {
+    if (!isNullOrUndefined(responsePayload)) {
       return this.uiServer.buildProtocolResponse(messageId, responsePayload);
     }
   }
@@ -116,7 +116,9 @@ export abstract class AbstractUIService {
   // }
 
   public sendResponse(messageId: string, responsePayload: ResponsePayload): void {
-    this.uiServer.sendResponse(this.uiServer.buildProtocolResponse(messageId, responsePayload));
+    if (this.uiServer.hasResponseHandler(messageId)) {
+      this.uiServer.sendResponse(this.uiServer.buildProtocolResponse(messageId, responsePayload));
+    }
   }
 
   public logPrefix = (modName: string, methodName: string): string => {
@@ -138,7 +140,7 @@ export abstract class AbstractUIService {
   ): void {
     this.sendBroadcastChannelRequest(
       uuid,
-      AbstractUIService.ProcedureNameToBroadCastChannelProcedureNameMap[
+      AbstractUIService.ProcedureNameToBroadCastChannelProcedureNameMapping[
         procedureName
       ] as BroadcastChannelProcedureName,
       payload
@@ -150,9 +152,9 @@ export abstract class AbstractUIService {
     procedureName: BroadcastChannelProcedureName,
     payload: BroadcastChannelRequestPayload
   ): void {
-    if (Utils.isNotEmptyArray(payload.hashIds)) {
+    if (isNotEmptyArray(payload.hashIds)) {
       payload.hashIds = payload.hashIds
-        .filter((hashId) => !Utils.isNullOrUndefined(hashId))
+        .filter((hashId) => !isNullOrUndefined(hashId))
         .map((hashId) => {
           if (this.uiServer.chargingStations.has(hashId) === true) {
             return hashId;
@@ -165,7 +167,7 @@ export abstract class AbstractUIService {
           );
         });
     }
-    const expectedNumberOfResponses = Utils.isNotEmptyArray(payload.hashIds)
+    const expectedNumberOfResponses = isNotEmptyArray(payload.hashIds)
       ? payload.hashIds.length
       : this.uiServer.chargingStations.size;
     this.uiServiceWorkerBroadcastChannel.sendRequest([uuid, procedureName, payload]);