Forward UI request UUID to broadcast channel request
[e-mobility-charging-stations-simulator.git] / src / charging-station / ui-server / ui-services / UIService001.ts
1 import {
2 ProcedureName,
3 ProtocolRequestHandler,
4 ProtocolVersion,
5 RequestPayload,
6 ResponsePayload,
7 ResponseStatus,
8 } from '../../../types/UIProtocol';
9 import {
10 BroadcastChannelProcedureName,
11 BroadcastChannelRequestPayload,
12 } from '../../../types/WorkerBroadcastChannel';
13 import { AbstractUIServer } from '../AbstractUIServer';
14 import AbstractUIService from './AbstractUIService';
15
16 export default class UIService001 extends AbstractUIService {
17 constructor(uiServer: AbstractUIServer) {
18 super(uiServer, ProtocolVersion['0.0.1']);
19 this.messageHandlers.set(
20 ProcedureName.START_TRANSACTION,
21 this.handleStartTransaction.bind(this) as ProtocolRequestHandler
22 );
23 this.messageHandlers.set(
24 ProcedureName.STOP_TRANSACTION,
25 this.handleStopTransaction.bind(this) as ProtocolRequestHandler
26 );
27 this.messageHandlers.set(
28 ProcedureName.START_CHARGING_STATION,
29 this.handleStartChargingStation.bind(this) as ProtocolRequestHandler
30 );
31 this.messageHandlers.set(
32 ProcedureName.STOP_CHARGING_STATION,
33 this.handleStopChargingStation.bind(this) as ProtocolRequestHandler
34 );
35 }
36
37 private handleStartTransaction(uuid: string, payload: RequestPayload): ResponsePayload {
38 this.workerBroadcastChannel.sendRequest([
39 uuid,
40 BroadcastChannelProcedureName.START_TRANSACTION,
41 payload as BroadcastChannelRequestPayload,
42 ]);
43 return { status: ResponseStatus.SUCCESS };
44 }
45
46 private handleStopTransaction(uuid: string, payload: RequestPayload): ResponsePayload {
47 this.workerBroadcastChannel.sendRequest([
48 uuid,
49 BroadcastChannelProcedureName.STOP_TRANSACTION,
50 payload as BroadcastChannelRequestPayload,
51 ]);
52 return { status: ResponseStatus.SUCCESS };
53 }
54
55 private handleStartChargingStation(uuid: string, payload: RequestPayload): ResponsePayload {
56 this.workerBroadcastChannel.sendRequest([
57 uuid,
58 BroadcastChannelProcedureName.START_CHARGING_STATION,
59 payload as BroadcastChannelRequestPayload,
60 ]);
61 return { status: ResponseStatus.SUCCESS };
62 }
63
64 private handleStopChargingStation(uuid: string, payload: RequestPayload): ResponsePayload {
65 this.workerBroadcastChannel.sendRequest([
66 uuid,
67 BroadcastChannelProcedureName.STOP_CHARGING_STATION,
68 payload as BroadcastChannelRequestPayload,
69 ]);
70 return { status: ResponseStatus.SUCCESS };
71 }
72 }