Commit | Line | Data |
---|---|---|
2896e06d | 1 | import type { ChargingStation } from './internal'; |
32de5a57 | 2 | import { |
e0b0ee21 JB |
3 | type ChargingStationData, |
4 | type ChargingStationWorkerMessage, | |
32de5a57 | 5 | ChargingStationWorkerMessageEvents, |
268a74bb JB |
6 | type Statistics, |
7 | } from '../types'; | |
32de5a57 LM |
8 | |
9 | export class MessageChannelUtils { | |
10 | private constructor() { | |
11 | // This is intentional | |
12 | } | |
13 | ||
14 | public static buildStartedMessage( | |
15 | chargingStation: ChargingStation | |
16 | ): ChargingStationWorkerMessage<ChargingStationData> { | |
17 | return { | |
721646e9 | 18 | id: ChargingStationWorkerMessageEvents.started, |
32de5a57 LM |
19 | data: MessageChannelUtils.buildChargingStationDataPayload(chargingStation), |
20 | }; | |
21 | } | |
22 | ||
23 | public static buildStoppedMessage( | |
24 | chargingStation: ChargingStation | |
25 | ): ChargingStationWorkerMessage<ChargingStationData> { | |
26 | return { | |
721646e9 | 27 | id: ChargingStationWorkerMessageEvents.stopped, |
32de5a57 LM |
28 | data: MessageChannelUtils.buildChargingStationDataPayload(chargingStation), |
29 | }; | |
30 | } | |
31 | ||
32 | public static buildUpdatedMessage( | |
33 | chargingStation: ChargingStation | |
34 | ): ChargingStationWorkerMessage<ChargingStationData> { | |
35 | return { | |
721646e9 | 36 | id: ChargingStationWorkerMessageEvents.updated, |
32de5a57 LM |
37 | data: MessageChannelUtils.buildChargingStationDataPayload(chargingStation), |
38 | }; | |
39 | } | |
40 | ||
41 | public static buildPerformanceStatisticsMessage( | |
42 | statistics: Statistics | |
43 | ): ChargingStationWorkerMessage<Statistics> { | |
44 | return { | |
721646e9 | 45 | id: ChargingStationWorkerMessageEvents.performanceStatistics, |
32de5a57 LM |
46 | data: statistics, |
47 | }; | |
48 | } | |
49 | ||
50 | private static buildChargingStationDataPayload( | |
51 | chargingStation: ChargingStation | |
52 | ): ChargingStationData { | |
53 | return { | |
452a82ca | 54 | started: chargingStation.started, |
8d8599f0 | 55 | stationInfo: chargingStation.stationInfo, |
bbc6c092 | 56 | connectors: [...chargingStation.connectors.values()].map( |
17bfa1b6 | 57 | // eslint-disable-next-line @typescript-eslint/no-unused-vars |
fc040c43 JB |
58 | ({ transactionSetInterval, ...connectorStatusRest }) => connectorStatusRest |
59 | ), | |
52952bf8 JB |
60 | evses: [...chargingStation.evses.values()].map((evseStatus) => { |
61 | return { | |
62 | ...evseStatus, | |
63 | connectors: [...evseStatus.connectors.values()].map( | |
64 | // eslint-disable-next-line @typescript-eslint/no-unused-vars | |
65 | ({ transactionSetInterval, ...connectorStatusRest }) => connectorStatusRest | |
66 | ), | |
67 | }; | |
68 | }), | |
8d8599f0 JB |
69 | ocppConfiguration: chargingStation.ocppConfiguration, |
70 | wsState: chargingStation?.wsConnection?.readyState, | |
71 | bootNotificationResponse: chargingStation.bootNotificationResponse, | |
5e3cb728 | 72 | ...(chargingStation.automaticTransactionGenerator && { |
c72f6634 JB |
73 | automaticTransactionGenerator: { |
74 | automaticTransactionGenerator: | |
75 | chargingStation.automaticTransactionGenerator.configuration, | |
76 | automaticTransactionGeneratorStatuses: [ | |
77 | ...chargingStation.automaticTransactionGenerator.connectorsStatus.values(), | |
78 | ], | |
79 | }, | |
5e3cb728 | 80 | }), |
32de5a57 LM |
81 | }; |
82 | } | |
83 | } |