Vue UI + UI server
[e-mobility-charging-stations-simulator.git] / src / charging-station / ui-server / ui-services / UIService001.ts
1 import { JsonType } from '../../../types/JsonType';
2 import {
3 ProcedureName,
4 ProtocolRequestHandler,
5 ProtocolVersion,
6 ResponsePayload,
7 ResponseStatus,
8 } from '../../../types/UIProtocol';
9 import { AbstractUIServer } from '../AbstractUIServer';
10 import AbstractUIService from './AbstractUIService';
11
12 export default class UIService001 extends AbstractUIService {
13 constructor(uiServer: AbstractUIServer) {
14 super(uiServer, ProtocolVersion['0.0.1']);
15 this.messageHandlers.set(
16 ProcedureName.START_TRANSACTION,
17 this.handleStartTransaction.bind(this) as ProtocolRequestHandler
18 );
19 this.messageHandlers.set(
20 ProcedureName.STOP_TRANSACTION,
21 this.handleStopTransaction.bind(this) as ProtocolRequestHandler
22 );
23 }
24
25 private handleStartTransaction(payload: JsonType): ResponsePayload {
26 this.workerBroadcastChannel.postMessage([ProcedureName.START_TRANSACTION, payload]);
27 return { status: ResponseStatus.SUCCESS };
28 }
29
30 private handleStopTransaction(payload: JsonType): ResponsePayload {
31 this.workerBroadcastChannel.postMessage([ProcedureName.STOP_TRANSACTION, payload]);
32 return { status: ResponseStatus.SUCCESS };
33 }
34 }