Vue UI + UI server
[e-mobility-charging-stations-simulator.git] / src / charging-station / ui-server / ui-services / UIService001.ts
index 0981ca358586e76235dd81f207c214654e5ceee6..e322ef003dfc28dec225f3fa1a036b10e94563aa 100644 (file)
@@ -1,8 +1,10 @@
 import { JsonType } from '../../../types/JsonType';
 import {
-  ProtocolCommand,
+  ProcedureName,
   ProtocolRequestHandler,
   ProtocolVersion,
+  ResponsePayload,
+  ResponseStatus,
 } from '../../../types/UIProtocol';
 import { AbstractUIServer } from '../AbstractUIServer';
 import AbstractUIService from './AbstractUIService';
@@ -11,15 +13,22 @@ export default class UIService001 extends AbstractUIService {
   constructor(uiServer: AbstractUIServer) {
     super(uiServer, ProtocolVersion['0.0.1']);
     this.messageHandlers.set(
-      ProtocolCommand.START_TRANSACTION,
+      ProcedureName.START_TRANSACTION,
       this.handleStartTransaction.bind(this) as ProtocolRequestHandler
     );
     this.messageHandlers.set(
-      ProtocolCommand.STOP_TRANSACTION,
+      ProcedureName.STOP_TRANSACTION,
       this.handleStopTransaction.bind(this) as ProtocolRequestHandler
     );
   }
 
-  private handleStartTransaction(payload: JsonType): void {}
-  private handleStopTransaction(payload: JsonType): void {}
+  private handleStartTransaction(payload: JsonType): ResponsePayload {
+    this.workerBroadcastChannel.postMessage([ProcedureName.START_TRANSACTION, payload]);
+    return { status: ResponseStatus.SUCCESS };
+  }
+
+  private handleStopTransaction(payload: JsonType): ResponsePayload {
+    this.workerBroadcastChannel.postMessage([ProcedureName.STOP_TRANSACTION, payload]);
+    return { status: ResponseStatus.SUCCESS };
+  }
 }