Add charging stations listing to WS server commands
[e-mobility-charging-stations-simulator.git] / src / charging-station / WebSocketServices / ui / AbstractUIService.ts
index 7a078bc2418cf048a199937e3341e10938fe0196..d8c61861c63995b319734cd0b61aa1985e354dac 100644 (file)
@@ -1,12 +1,23 @@
-import { ProtocolCommand } from '../../../types/UIProtocol';
+import { ProtocolCommand, ProtocolVersion } from '../../../types/UIProtocol';
+
 import WebSocketServer from '../../WebSocketServer';
 
 export default abstract class AbstractUIService {
+  public readonly chargingStations: Set<string>;
   protected readonly webSocketServer: WebSocketServer;
 
   constructor(webSocketServer: WebSocketServer) {
+    this.chargingStations = new Set<string>();
     this.webSocketServer = webSocketServer;
   }
 
-  abstract handleMessage(command: ProtocolCommand, payload: Record<string, unknown>): Promise<void>;
+  protected buildProtocolMessage(
+      version: ProtocolVersion,
+      command: ProtocolCommand,
+      payload: Record<string, unknown>,
+  ): string {
+    return JSON.stringify([version, command, payload]);
+  }
+
+  abstract handleMessage(version: ProtocolVersion, command: ProtocolCommand, payload: Record<string, unknown>): Promise<void>;
 }