perf: minimize OCPPUtils exports
[e-mobility-charging-stations-simulator.git] / src / charging-station / ocpp / 1.6 / OCPP16IncomingRequestService.ts
index 3647ebdb78d9a234ac7a4a95673dc1a19cc18165..8faf05cf609676ebca14249de5139edd215a3055 100644 (file)
@@ -6,7 +6,14 @@ import { URL, fileURLToPath } from 'node:url';
 
 import type { JSONSchemaType } from 'ajv';
 import { Client, type FTPResponse } from 'basic-ftp';
-import { addSeconds, differenceInSeconds, isDate, maxTime, secondsToMilliseconds } from 'date-fns';
+import {
+  type Interval,
+  addSeconds,
+  differenceInSeconds,
+  isDate,
+  secondsToMilliseconds,
+} from 'date-fns';
+import { maxTime } from 'date-fns/constants';
 import { create } from 'tar';
 
 import { OCPP16Constants } from './OCPP16Constants';
@@ -25,8 +32,6 @@ import { OCPPError } from '../../../exception';
 import {
   type ChangeConfigurationRequest,
   type ChangeConfigurationResponse,
-  type ClearChargingProfileRequest,
-  type ClearChargingProfileResponse,
   ErrorType,
   type GenericResponse,
   GenericStatus,
@@ -49,6 +54,8 @@ import {
   OCPP16ChargingProfilePurposeType,
   type OCPP16ChargingSchedule,
   type OCPP16ClearCacheRequest,
+  type OCPP16ClearChargingProfileRequest,
+  type OCPP16ClearChargingProfileResponse,
   type OCPP16DataTransferRequest,
   type OCPP16DataTransferResponse,
   OCPP16DataTransferVendorId,
@@ -253,7 +260,7 @@ export class OCPP16IncomingRequestService extends OCPPIncomingRequestService {
       ],
       [
         OCPP16IncomingRequestCommand.CLEAR_CHARGING_PROFILE,
-        OCPP16ServiceUtils.parseJsonSchemaFile<ClearChargingProfileRequest>(
+        OCPP16ServiceUtils.parseJsonSchemaFile<OCPP16ClearChargingProfileRequest>(
           'assets/json-schemas/ocpp/1.6/ClearChargingProfile.json',
           moduleName,
           'constructor',
@@ -791,8 +798,8 @@ export class OCPP16IncomingRequestService extends OCPPIncomingRequestService {
 
   private handleRequestClearChargingProfile(
     chargingStation: ChargingStation,
-    commandPayload: ClearChargingProfileRequest,
-  ): ClearChargingProfileResponse {
+    commandPayload: OCPP16ClearChargingProfileRequest,
+  ): OCPP16ClearChargingProfileResponse {
     if (
       OCPP16ServiceUtils.checkFeatureProfile(
         chargingStation,
@@ -1103,7 +1110,10 @@ export class OCPP16IncomingRequestService extends OCPPIncomingRequestService {
       return OCPP16Constants.OCPP_RESPONSE_EMPTY;
     }
     let { retrieveDate } = commandPayload;
-    if (chargingStation.stationInfo.firmwareStatus !== OCPP16FirmwareStatus.Installed) {
+    if (
+      !isNullOrUndefined(chargingStation.stationInfo.firmwareStatus) &&
+      chargingStation.stationInfo.firmwareStatus !== OCPP16FirmwareStatus.Installed
+    ) {
       logger.warn(
         `${chargingStation.logPrefix()} ${moduleName}.handleRequestUpdateFirmware: Cannot simulate firmware update: firmware update is already in progress`,
       );