UI Server: dedupe some code in helpers
[e-mobility-charging-stations-simulator.git] / src / charging-station / ui-server / AbstractUIServer.ts
index 65847d85d4f313a92880c99fc6bfcb2f98a3cfbf..b8e7c46cdf879b1e5d28d65c653085e90c40cf89 100644 (file)
@@ -3,7 +3,14 @@ import { Server as HttpServer } from 'http';
 import WebSocket from 'ws';
 
 import { ChargingStationData } from '../../types/ChargingStationWorker';
-import { ProtocolVersion } from '../../types/UIProtocol';
+import {
+  ProcedureName,
+  ProtocolRequest,
+  ProtocolResponse,
+  ProtocolVersion,
+  RequestPayload,
+  ResponsePayload,
+} from '../../types/UIProtocol';
 import type AbstractUIService from './ui-services/AbstractUIService';
 
 export abstract class AbstractUIServer {
@@ -16,6 +23,18 @@ export abstract class AbstractUIServer {
     this.uiServices = new Map<ProtocolVersion, AbstractUIService>();
   }
 
+  public buildProtocolRequest(
+    id: string,
+    procedureName: ProcedureName,
+    requestPayload: RequestPayload
+  ): string {
+    return JSON.stringify([id, procedureName, requestPayload] as ProtocolRequest);
+  }
+
+  public buildProtocolResponse(id: string, responsePayload: ResponsePayload): string {
+    return JSON.stringify([id, responsePayload] as ProtocolResponse);
+  }
+
   public abstract start(): void;
   public abstract stop(): void;
   public abstract sendRequest(request: string): void;