Forward UI request UUID to broadcast channel request
[e-mobility-charging-stations-simulator.git] / src / charging-station / ui-server / ui-services / UIService001.ts
index e322ef003dfc28dec225f3fa1a036b10e94563aa..1f926c939f7ce2703e58388d6117ebd210844a93 100644 (file)
@@ -1,11 +1,15 @@
-import { JsonType } from '../../../types/JsonType';
 import {
   ProcedureName,
   ProtocolRequestHandler,
   ProtocolVersion,
+  RequestPayload,
   ResponsePayload,
   ResponseStatus,
 } from '../../../types/UIProtocol';
+import {
+  BroadcastChannelProcedureName,
+  BroadcastChannelRequestPayload,
+} from '../../../types/WorkerBroadcastChannel';
 import { AbstractUIServer } from '../AbstractUIServer';
 import AbstractUIService from './AbstractUIService';
 
@@ -20,15 +24,49 @@ export default class UIService001 extends AbstractUIService {
       ProcedureName.STOP_TRANSACTION,
       this.handleStopTransaction.bind(this) as ProtocolRequestHandler
     );
+    this.messageHandlers.set(
+      ProcedureName.START_CHARGING_STATION,
+      this.handleStartChargingStation.bind(this) as ProtocolRequestHandler
+    );
+    this.messageHandlers.set(
+      ProcedureName.STOP_CHARGING_STATION,
+      this.handleStopChargingStation.bind(this) as ProtocolRequestHandler
+    );
+  }
+
+  private handleStartTransaction(uuid: string, payload: RequestPayload): ResponsePayload {
+    this.workerBroadcastChannel.sendRequest([
+      uuid,
+      BroadcastChannelProcedureName.START_TRANSACTION,
+      payload as BroadcastChannelRequestPayload,
+    ]);
+    return { status: ResponseStatus.SUCCESS };
+  }
+
+  private handleStopTransaction(uuid: string, payload: RequestPayload): ResponsePayload {
+    this.workerBroadcastChannel.sendRequest([
+      uuid,
+      BroadcastChannelProcedureName.STOP_TRANSACTION,
+      payload as BroadcastChannelRequestPayload,
+    ]);
+    return { status: ResponseStatus.SUCCESS };
   }
 
-  private handleStartTransaction(payload: JsonType): ResponsePayload {
-    this.workerBroadcastChannel.postMessage([ProcedureName.START_TRANSACTION, payload]);
+  private handleStartChargingStation(uuid: string, payload: RequestPayload): ResponsePayload {
+    this.workerBroadcastChannel.sendRequest([
+      uuid,
+      BroadcastChannelProcedureName.START_CHARGING_STATION,
+      payload as BroadcastChannelRequestPayload,
+    ]);
     return { status: ResponseStatus.SUCCESS };
   }
 
-  private handleStopTransaction(payload: JsonType): ResponsePayload {
-    this.workerBroadcastChannel.postMessage([ProcedureName.STOP_TRANSACTION, payload]);
+  private handleStopChargingStation(uuid: string, payload: RequestPayload): ResponsePayload {
+    this.workerBroadcastChannel.sendRequest([
+      uuid,
+      BroadcastChannelProcedureName.STOP_CHARGING_STATION,
+      payload as BroadcastChannelRequestPayload,
+    ]);
     return { status: ResponseStatus.SUCCESS };
   }
 }