Apply dependencies update
[e-mobility-charging-stations-simulator.git] / src / charging-station / ChargingStationWorkerBroadcastChannel.ts
index 274267ca446ade938bfd2e519fdf692a5b2f29d7..0eecb7b1bf16838fc81c9eaed0bce0f0970e192c 100644 (file)
@@ -3,6 +3,7 @@ import type OCPPError from '../exception/OCPPError';
 import { StandardParametersKey } from '../types/ocpp/Configuration';
 import {
   type BootNotificationRequest,
+  type DataTransferRequest,
   type HeartbeatRequest,
   type MeterValuesRequest,
   RequestCommand,
@@ -10,6 +11,8 @@ import {
 } from '../types/ocpp/Requests';
 import {
   type BootNotificationResponse,
+  type DataTransferResponse,
+  DataTransferStatus,
   type HeartbeatResponse,
   type MeterValuesResponse,
   RegistrationStatus,
@@ -24,6 +27,7 @@ import {
   type StopTransactionRequest,
   type StopTransactionResponse,
 } from '../types/ocpp/Transaction';
+import { ResponseStatus } from '../types/UIProtocol';
 import {
   BroadcastChannelProcedureName,
   type BroadcastChannelRequest,
@@ -31,7 +35,6 @@ import {
   type BroadcastChannelResponsePayload,
   type MessageEvent,
 } from '../types/WorkerBroadcastChannel';
-import { ResponseStatus } from '../ui/web/src/types/UIProtocol';
 import Constants from '../utils/Constants';
 import logger from '../utils/Logger';
 import Utils from '../utils/Utils';
@@ -49,7 +52,8 @@ type CommandResponse =
   | BootNotificationResponse
   | StatusNotificationResponse
   | HeartbeatResponse
-  | MeterValuesResponse;
+  | MeterValuesResponse
+  | DataTransferResponse;
 
 type CommandHandler = (
   requestPayload?: BroadcastChannelRequestPayload
@@ -178,6 +182,14 @@ export default class ChargingStationWorkerBroadcastChannel extends WorkerBroadca
           });
         },
       ],
+      [
+        BroadcastChannelProcedureName.DATA_TRANSFER,
+        async (requestPayload?: BroadcastChannelRequestPayload) =>
+          this.chargingStation.ocppRequestService.requestHandler<
+            DataTransferRequest,
+            DataTransferResponse
+          >(this.chargingStation, RequestCommand.DATA_TRANSFER, requestPayload),
+      ],
     ]);
     this.chargingStation = chargingStation;
     this.onmessage = this.requestHandler.bind(this) as (message: MessageEvent) => void;
@@ -268,7 +280,7 @@ export default class ChargingStationWorkerBroadcastChannel extends WorkerBroadca
     [
       BroadcastChannelProcedureName.START_AUTOMATIC_TRANSACTION_GENERATOR,
       BroadcastChannelProcedureName.STOP_AUTOMATIC_TRANSACTION_GENERATOR,
-    ].includes(command) === true && delete requestPayload.connectorIds;
+    ].includes(command) === false && delete requestPayload.connectorIds;
   }
 
   private commandResponseToResponsePayload(
@@ -316,6 +328,11 @@ export default class ChargingStationWorkerBroadcastChannel extends WorkerBroadca
           return ResponseStatus.SUCCESS;
         }
         return ResponseStatus.FAILURE;
+      case BroadcastChannelProcedureName.DATA_TRANSFER:
+        if (commandResponse?.status === DataTransferStatus.ACCEPTED) {
+          return ResponseStatus.SUCCESS;
+        }
+        return ResponseStatus.FAILURE;
       case BroadcastChannelProcedureName.STATUS_NOTIFICATION:
       case BroadcastChannelProcedureName.METER_VALUES:
         if (Utils.isEmptyObject(commandResponse) === true) {