fix(simulator): lookup OCPP configuration key case insensitively
[e-mobility-charging-stations-simulator.git] / src / charging-station / ocpp / 1.6 / OCPP16IncomingRequestService.ts
index fa3d83284a37342316dd2c234ed7e84eead1695e..b1df54b787b7f826d4b1863266af524031742704 100644 (file)
@@ -360,18 +360,16 @@ export default class OCPP16IncomingRequestService extends OCPPIncomingRequestSer
     chargingStation: ChargingStation,
     commandPayload: ResetRequest
   ): GenericResponse {
-    this.asyncResource
-      .runInAsyncScope(
-        chargingStation.reset.bind(chargingStation) as (
-          this: ChargingStation,
-          ...args: any[]
-        ) => Promise<void>,
-        chargingStation,
-        `${commandPayload.type}Reset` as OCPP16StopTransactionReason
-      )
-      .catch(() => {
-        /* This is intentional */
-      });
+    this.runInAsyncScope(
+      chargingStation.reset.bind(chargingStation) as (
+        this: ChargingStation,
+        ...args: any[]
+      ) => Promise<void>,
+      chargingStation,
+      `${commandPayload.type}Reset` as OCPP16StopTransactionReason
+    ).catch(() => {
+      /* This is intentional */
+    });
     logger.info(
       `${chargingStation.logPrefix()} ${
         commandPayload.type
@@ -427,7 +425,7 @@ export default class OCPP16IncomingRequestService extends OCPPIncomingRequestSer
   ): GetConfigurationResponse {
     const configurationKey: OCPPConfigurationKey[] = [];
     const unknownKey: string[] = [];
-    if (Utils.isEmptyArray(commandPayload.key) === true) {
+    if (Utils.isUndefined(commandPayload.key) === true) {
       for (const configuration of chargingStation.ocppConfiguration.configurationKey) {
         if (Utils.isUndefined(configuration.visible) === true) {
           configuration.visible = true;
@@ -441,11 +439,12 @@ export default class OCPP16IncomingRequestService extends OCPPIncomingRequestSer
           value: configuration.value,
         });
       }
-    } else {
+    } else if (Utils.isNotEmptyArray(commandPayload.key) === true) {
       for (const key of commandPayload.key) {
         const keyFound = ChargingStationConfigurationUtils.getConfigurationKey(
           chargingStation,
-          key
+          key,
+          true
         );
         if (keyFound) {
           if (Utils.isUndefined(keyFound.visible) === true) {
@@ -604,7 +603,7 @@ export default class OCPP16IncomingRequestService extends OCPPIncomingRequestSer
     const connectorStatus = chargingStation.getConnectorStatus(commandPayload.connectorId);
     if (
       !Utils.isNullOrUndefined(commandPayload.connectorId) &&
-      !Utils.isEmptyArray(connectorStatus?.chargingProfiles)
+      Utils.isNotEmptyArray(connectorStatus?.chargingProfiles)
     ) {
       connectorStatus.chargingProfiles = [];
       logger.debug(
@@ -618,7 +617,7 @@ export default class OCPP16IncomingRequestService extends OCPPIncomingRequestSer
       let clearedCP = false;
       for (const connectorId of chargingStation.connectors.keys()) {
         if (
-          !Utils.isEmptyArray(chargingStation.getConnectorStatus(connectorId)?.chargingProfiles)
+          Utils.isNotEmptyArray(chargingStation.getConnectorStatus(connectorId)?.chargingProfiles)
         ) {
           chargingStation
             .getConnectorStatus(connectorId)
@@ -749,7 +748,7 @@ export default class OCPP16IncomingRequestService extends OCPPIncomingRequestSer
           if (
             chargingStation.getLocalAuthListEnabled() === true &&
             chargingStation.hasAuthorizedTags() === true &&
-            !Utils.isEmptyString(
+            Utils.isNotEmptyString(
               chargingStation.authorizedTagsCache
                 .getAuthorizedTags(
                   ChargingStationUtils.getAuthorizationFile(chargingStation.stationInfo)
@@ -980,18 +979,16 @@ export default class OCPP16IncomingRequestService extends OCPPIncomingRequestSer
     const retrieveDate = Utils.convertToDate(commandPayload.retrieveDate);
     const now = Date.now();
     if (retrieveDate?.getTime() <= now) {
-      this.asyncResource
-        .runInAsyncScope(
-          this.updateFirmware.bind(this) as (
-            this: OCPP16IncomingRequestService,
-            ...args: any[]
-          ) => Promise<void>,
-          this,
-          chargingStation
-        )
-        .catch(() => {
-          /* This is intentional */
-        });
+      this.runInAsyncScope(
+        this.updateFirmware.bind(this) as (
+          this: OCPP16IncomingRequestService,
+          ...args: any[]
+        ) => Promise<void>,
+        this,
+        chargingStation
+      ).catch(() => {
+        /* This is intentional */
+      });
     } else {
       setTimeout(() => {
         this.updateFirmware(chargingStation).catch(() => {
@@ -1027,7 +1024,7 @@ export default class OCPP16IncomingRequestService extends OCPPIncomingRequestSer
     }
     if (
       chargingStation.stationInfo?.firmwareUpgrade?.failureStatus &&
-      !Utils.isEmptyString(chargingStation.stationInfo?.firmwareUpgrade?.failureStatus)
+      Utils.isNotEmptyString(chargingStation.stationInfo?.firmwareUpgrade?.failureStatus)
     ) {
       await chargingStation.ocppRequestService.requestHandler<
         OCPP16FirmwareStatusNotificationRequest,
@@ -1095,9 +1092,9 @@ export default class OCPP16IncomingRequestService extends OCPPIncomingRequestSer
         ftpClient = new Client();
         const accessResponse = await ftpClient.access({
           host: uri.host,
-          ...(!Utils.isEmptyString(uri.port) && { port: Utils.convertToInt(uri.port) }),
-          ...(!Utils.isEmptyString(uri.username) && { user: uri.username }),
-          ...(!Utils.isEmptyString(uri.password) && { password: uri.password }),
+          ...(Utils.isNotEmptyString(uri.port) && { port: Utils.convertToInt(uri.port) }),
+          ...(Utils.isNotEmptyString(uri.username) && { user: uri.username }),
+          ...(Utils.isNotEmptyString(uri.password) && { password: uri.password }),
         });
         let uploadResponse: FTPResponse;
         if (accessResponse.code === 220) {