Avoid strings concatenation
[e-mobility-charging-stations-simulator.git] / src / charging-station / ocpp / 1.6 / OCPP16ResponseService.ts
index 61d1ffad5f1d5d262ed1bf785b802c29b9965a10..330f6672542c67151d54f4666da19e0f20753ec0 100644 (file)
@@ -6,6 +6,7 @@ import { fileURLToPath } from 'url';
 
 import type { JSONSchemaType } from 'ajv';
 
+import { OCPP16ServiceUtils } from './OCPP16ServiceUtils';
 import OCPPError from '../../../exception/OCPPError';
 import type { JsonObject, JsonType } from '../../../types/JsonType';
 import { OCPP16ChargePointErrorCode } from '../../../types/ocpp/1.6/ChargePointErrorCode';
@@ -60,7 +61,6 @@ import Utils from '../../../utils/Utils';
 import type ChargingStation from '../../ChargingStation';
 import { ChargingStationConfigurationUtils } from '../../ChargingStationConfigurationUtils';
 import OCPPResponseService from '../OCPPResponseService';
-import { OCPP16ServiceUtils } from './OCPP16ServiceUtils';
 
 const moduleName = 'OCPP16ResponseService';
 
@@ -343,8 +343,7 @@ export default class OCPP16ResponseService extends OCPPResponseService {
         : logger.info(logMsg);
     } else {
       logger.error(
-        chargingStation.logPrefix() +
-          ' Charging station boot notification response received: %j with undefined registration status',
+        `${chargingStation.logPrefix()} Charging station boot notification response received: %j with undefined registration status`,
         payload
       );
     }
@@ -365,24 +364,24 @@ export default class OCPP16ResponseService extends OCPPResponseService {
         break;
       }
     }
-    const isAuthorizeConnectorIdDefined = authorizeConnectorId !== undefined;
+    const authorizeConnectorIdDefined = authorizeConnectorId !== undefined;
     if (payload.idTagInfo.status === OCPP16AuthorizationStatus.ACCEPTED) {
-      isAuthorizeConnectorIdDefined &&
+      authorizeConnectorIdDefined &&
         (chargingStation.getConnectorStatus(authorizeConnectorId).idTagAuthorized = true);
       logger.debug(
         `${chargingStation.logPrefix()} IdTag '${requestPayload.idTag}' accepted${
-          isAuthorizeConnectorIdDefined ? ` on connector ${authorizeConnectorId}` : ''
+          authorizeConnectorIdDefined ? ` on connector ${authorizeConnectorId}` : ''
         }`
       );
     } else {
-      if (isAuthorizeConnectorIdDefined) {
+      if (authorizeConnectorIdDefined) {
         chargingStation.getConnectorStatus(authorizeConnectorId).idTagAuthorized = false;
         delete chargingStation.getConnectorStatus(authorizeConnectorId).authorizeIdTag;
       }
       logger.debug(
         `${chargingStation.logPrefix()} IdTag '${requestPayload.idTag}' rejected with status '${
           payload.idTagInfo.status
-        }'${isAuthorizeConnectorIdDefined ? ` on connector ${authorizeConnectorId}` : ''}`
+        }'${authorizeConnectorIdDefined ? ` on connector ${authorizeConnectorId}` : ''}`
       );
     }
   }
@@ -403,9 +402,7 @@ export default class OCPP16ResponseService extends OCPPResponseService {
     }
     if (!transactionConnectorId) {
       logger.error(
-        chargingStation.logPrefix() +
-          ' Trying to start a transaction on a non existing connector Id ' +
-          connectorId.toString()
+        `${chargingStation.logPrefix()} Trying to start a transaction on a non existing connector Id ${connectorId.toString()}`
       );
       return;
     }
@@ -417,11 +414,9 @@ export default class OCPP16ResponseService extends OCPPResponseService {
       chargingStation.getConnectorStatus(connectorId).idTagLocalAuthorized === false
     ) {
       logger.error(
-        chargingStation.logPrefix() +
-          ' Trying to start a transaction with a not local authorized idTag ' +
-          chargingStation.getConnectorStatus(connectorId).localAuthorizeIdTag +
-          ' on connector Id ' +
-          connectorId.toString()
+        `${chargingStation.logPrefix()} Trying to start a transaction with a not local authorized idTag ${
+          chargingStation.getConnectorStatus(connectorId).localAuthorizeIdTag
+        } on connector Id ${connectorId.toString()}`
       );
       await this.resetConnectorOnStartTransactionError(chargingStation, connectorId);
       return;
@@ -434,11 +429,9 @@ export default class OCPP16ResponseService extends OCPPResponseService {
       chargingStation.getConnectorStatus(connectorId).idTagAuthorized === false
     ) {
       logger.error(
-        chargingStation.logPrefix() +
-          ' Trying to start a transaction with a not authorized idTag ' +
-          chargingStation.getConnectorStatus(connectorId).authorizeIdTag +
-          ' on connector Id ' +
-          connectorId.toString()
+        `${chargingStation.logPrefix()} Trying to start a transaction with a not authorized idTag ${
+          chargingStation.getConnectorStatus(connectorId).authorizeIdTag
+        } on connector Id ${connectorId.toString()}`
       );
       await this.resetConnectorOnStartTransactionError(chargingStation, connectorId);
       return;
@@ -448,13 +441,11 @@ export default class OCPP16ResponseService extends OCPPResponseService {
       chargingStation.getConnectorStatus(connectorId).authorizeIdTag !== requestPayload.idTag
     ) {
       logger.error(
-        chargingStation.logPrefix() +
-          ' Trying to start a transaction with an idTag ' +
-          requestPayload.idTag +
-          ' different from the authorize request one ' +
-          chargingStation.getConnectorStatus(connectorId).authorizeIdTag +
-          ' on connector Id ' +
-          connectorId.toString()
+        `${chargingStation.logPrefix()} Trying to start a transaction with an idTag ${
+          requestPayload.idTag
+        } different from the authorize request one ${
+          chargingStation.getConnectorStatus(connectorId).authorizeIdTag
+        } on connector Id ${connectorId.toString()}`
       );
       await this.resetConnectorOnStartTransactionError(chargingStation, connectorId);
       return;
@@ -464,23 +455,18 @@ export default class OCPP16ResponseService extends OCPPResponseService {
       chargingStation.getConnectorStatus(connectorId).localAuthorizeIdTag !== requestPayload.idTag
     ) {
       logger.error(
-        chargingStation.logPrefix() +
-          ' Trying to start a transaction with an idTag ' +
-          requestPayload.idTag +
-          ' different from the local authorized one ' +
-          chargingStation.getConnectorStatus(connectorId).localAuthorizeIdTag +
-          ' on connector Id ' +
-          connectorId.toString()
+        `${chargingStation.logPrefix()} Trying to start a transaction with an idTag ${
+          requestPayload.idTag
+        } different from the local authorized one ${
+          chargingStation.getConnectorStatus(connectorId).localAuthorizeIdTag
+        } on connector Id ${connectorId.toString()}`
       );
       await this.resetConnectorOnStartTransactionError(chargingStation, connectorId);
       return;
     }
     if (chargingStation.getConnectorStatus(connectorId)?.transactionStarted === true) {
       logger.debug(
-        chargingStation.logPrefix() +
-          ' Trying to start a transaction on an already used connector ' +
-          connectorId.toString() +
-          ': %j',
+        `${chargingStation.logPrefix()} Trying to start a transaction on an already used connector ${connectorId.toString()}: %j`,
         chargingStation.getConnectorStatus(connectorId)
       );
       return;
@@ -538,16 +524,9 @@ export default class OCPP16ResponseService extends OCPPResponseService {
       });
       chargingStation.getConnectorStatus(connectorId).status = OCPP16ChargePointStatus.CHARGING;
       logger.info(
-        chargingStation.logPrefix() +
-          ' Transaction ' +
-          payload.transactionId.toString() +
-          ' STARTED on ' +
-          chargingStation.stationInfo.chargingStationId +
-          '#' +
-          connectorId.toString() +
-          " for idTag '" +
-          requestPayload.idTag +
-          "'"
+        `${chargingStation.logPrefix()} Transaction ${payload.transactionId.toString()} STARTED on ${
+          chargingStation.stationInfo.chargingStationId
+        }#${connectorId.toString()} for idTag '${requestPayload.idTag}'`
       );
       if (chargingStation.stationInfo.powerSharedByConnectors) {
         chargingStation.powerDivider++;
@@ -565,14 +544,9 @@ export default class OCPP16ResponseService extends OCPPResponseService {
       );
     } else {
       logger.warn(
-        chargingStation.logPrefix() +
-          ' Starting transaction id ' +
-          payload.transactionId.toString() +
-          " REJECTED with status '" +
-          payload?.idTagInfo?.status +
-          "', idTag '" +
-          requestPayload.idTag +
-          "'"
+        `${chargingStation.logPrefix()} Starting transaction id ${payload.transactionId.toString()} REJECTED with status '${
+          payload.idTagInfo?.status
+        }', idTag '${requestPayload.idTag}'`
       );
       await this.resetConnectorOnStartTransactionError(chargingStation, connectorId);
     }
@@ -608,78 +582,69 @@ export default class OCPP16ResponseService extends OCPPResponseService {
     );
     if (!transactionConnectorId) {
       logger.error(
-        chargingStation.logPrefix() +
-          ' Trying to stop a non existing transaction ' +
-          requestPayload.transactionId.toString()
+        `${chargingStation.logPrefix()} Trying to stop a non existing transaction ${requestPayload.transactionId.toString()}`
       );
       return;
     }
-    if (payload.idTagInfo?.status === OCPP16AuthorizationStatus.ACCEPTED) {
-      chargingStation.getBeginEndMeterValues() === true &&
-        chargingStation.getOcppStrictCompliance() === false &&
-        chargingStation.getOutOfOrderEndMeterValues() === true &&
-        (await chargingStation.ocppRequestService.requestHandler<
-          OCPP16MeterValuesRequest,
-          OCPP16MeterValuesResponse
-        >(chargingStation, OCPP16RequestCommand.METER_VALUES, {
-          connectorId: transactionConnectorId,
-          transactionId: requestPayload.transactionId,
-          meterValue: [
-            OCPP16ServiceUtils.buildTransactionEndMeterValue(
-              chargingStation,
-              transactionConnectorId,
-              requestPayload.meterStop
-            ),
-          ],
-        }));
-      if (
-        chargingStation.isChargingStationAvailable() === false ||
-        chargingStation.isConnectorAvailable(transactionConnectorId) === false
-      ) {
-        await chargingStation.ocppRequestService.requestHandler<
-          OCPP16StatusNotificationRequest,
-          OCPP16StatusNotificationResponse
-        >(chargingStation, OCPP16RequestCommand.STATUS_NOTIFICATION, {
-          connectorId: transactionConnectorId,
-          status: OCPP16ChargePointStatus.UNAVAILABLE,
-          errorCode: OCPP16ChargePointErrorCode.NO_ERROR,
-        });
-        chargingStation.getConnectorStatus(transactionConnectorId).status =
-          OCPP16ChargePointStatus.UNAVAILABLE;
-      } else {
-        await chargingStation.ocppRequestService.requestHandler<
-          OCPP16BootNotificationRequest,
-          OCPP16BootNotificationResponse
-        >(chargingStation, OCPP16RequestCommand.STATUS_NOTIFICATION, {
-          connectorId: transactionConnectorId,
-          status: OCPP16ChargePointStatus.AVAILABLE,
-          errorCode: OCPP16ChargePointErrorCode.NO_ERROR,
-        });
-        chargingStation.getConnectorStatus(transactionConnectorId).status =
-          OCPP16ChargePointStatus.AVAILABLE;
-      }
-      if (chargingStation.stationInfo.powerSharedByConnectors) {
-        chargingStation.powerDivider--;
-      }
-      chargingStation.resetConnectorStatus(transactionConnectorId);
-      logger.info(
-        chargingStation.logPrefix() +
-          ' Transaction ' +
-          requestPayload.transactionId.toString() +
-          ' STOPPED on ' +
-          chargingStation.stationInfo.chargingStationId +
-          '#' +
-          transactionConnectorId.toString()
-      );
+    chargingStation.getBeginEndMeterValues() === true &&
+      chargingStation.getOcppStrictCompliance() === false &&
+      chargingStation.getOutOfOrderEndMeterValues() === true &&
+      (await chargingStation.ocppRequestService.requestHandler<
+        OCPP16MeterValuesRequest,
+        OCPP16MeterValuesResponse
+      >(chargingStation, OCPP16RequestCommand.METER_VALUES, {
+        connectorId: transactionConnectorId,
+        transactionId: requestPayload.transactionId,
+        meterValue: [
+          OCPP16ServiceUtils.buildTransactionEndMeterValue(
+            chargingStation,
+            transactionConnectorId,
+            requestPayload.meterStop
+          ),
+        ],
+      }));
+    if (
+      chargingStation.isChargingStationAvailable() === false ||
+      chargingStation.isConnectorAvailable(transactionConnectorId) === false
+    ) {
+      await chargingStation.ocppRequestService.requestHandler<
+        OCPP16StatusNotificationRequest,
+        OCPP16StatusNotificationResponse
+      >(chargingStation, OCPP16RequestCommand.STATUS_NOTIFICATION, {
+        connectorId: transactionConnectorId,
+        status: OCPP16ChargePointStatus.UNAVAILABLE,
+        errorCode: OCPP16ChargePointErrorCode.NO_ERROR,
+      });
+      chargingStation.getConnectorStatus(transactionConnectorId).status =
+        OCPP16ChargePointStatus.UNAVAILABLE;
     } else {
-      logger.warn(
-        chargingStation.logPrefix() +
-          ' Stopping transaction id ' +
-          requestPayload.transactionId.toString() +
-          " REJECTED with status '" +
-          payload.idTagInfo?.status +
-          "'"
-      );
+      await chargingStation.ocppRequestService.requestHandler<
+        OCPP16BootNotificationRequest,
+        OCPP16BootNotificationResponse
+      >(chargingStation, OCPP16RequestCommand.STATUS_NOTIFICATION, {
+        connectorId: transactionConnectorId,
+        status: OCPP16ChargePointStatus.AVAILABLE,
+        errorCode: OCPP16ChargePointErrorCode.NO_ERROR,
+      });
+      chargingStation.getConnectorStatus(transactionConnectorId).status =
+        OCPP16ChargePointStatus.AVAILABLE;
+    }
+    if (chargingStation.stationInfo.powerSharedByConnectors) {
+      chargingStation.powerDivider--;
+    }
+    chargingStation.resetConnectorStatus(transactionConnectorId);
+    const logMsg = `${chargingStation.logPrefix()} Transaction ${requestPayload.transactionId.toString()} STOPPED on ${
+      chargingStation.stationInfo.chargingStationId
+    }#${transactionConnectorId.toString()} with status '${
+      payload.idTagInfo?.status ?? 'undefined'
+    }'`;
+    if (
+      Utils.isNullOrUndefined(payload.idTagInfo) ||
+      payload.idTagInfo?.status === OCPP16AuthorizationStatus.ACCEPTED
+    ) {
+      logger.info(logMsg);
+    } else {
+      logger.warn(logMsg);
     }
   }