Commit | Line | Data |
---|---|---|
179ed367 JB |
1 | import { Utils } from './Utils'; |
2 | import type { ChargingStation } from '../charging-station'; | |
3 | import type { | |
4 | ChargingStationAutomaticTransactionGeneratorConfiguration, | |
5 | ConnectorStatus, | |
6 | EvseStatusConfiguration, | |
09989bb8 | 7 | EvseStatusWorkerType, |
179ed367 JB |
8 | } from '../types'; |
9 | ||
10 | export const buildChargingStationAutomaticTransactionGeneratorConfiguration = ( | |
11 | chargingStation: ChargingStation | |
12 | ): ChargingStationAutomaticTransactionGeneratorConfiguration => { | |
13 | return { | |
14 | automaticTransactionGenerator: chargingStation.getAutomaticTransactionGeneratorConfiguration(), | |
15 | ...(!Utils.isNullOrUndefined( | |
16 | chargingStation.automaticTransactionGenerator?.connectorsStatus | |
17 | ) && { | |
18 | automaticTransactionGeneratorStatuses: [ | |
19 | ...chargingStation.automaticTransactionGenerator.connectorsStatus.values(), | |
20 | ], | |
21 | }), | |
22 | }; | |
23 | }; | |
24 | ||
25 | export const buildConnectorsStatus = (chargingStation: ChargingStation): ConnectorStatus[] => { | |
26 | return [...chargingStation.connectors.values()].map( | |
27 | // eslint-disable-next-line @typescript-eslint/no-unused-vars | |
28 | ({ transactionSetInterval, ...connectorStatusRest }) => connectorStatusRest | |
29 | ); | |
30 | }; | |
31 | ||
32 | export const enum OutputFormat { | |
33 | configuration = 'configuration', | |
09989bb8 | 34 | worker = 'worker', |
179ed367 JB |
35 | } |
36 | ||
37 | export const buildEvsesStatus = ( | |
38 | chargingStation: ChargingStation, | |
39 | outputFormat: OutputFormat = OutputFormat.configuration | |
09989bb8 | 40 | ): (EvseStatusWorkerType | EvseStatusConfiguration)[] => { |
179ed367 JB |
41 | return [...chargingStation.evses.values()].map((evseStatus) => { |
42 | const connectorsStatus = [...evseStatus.connectors.values()].map( | |
43 | // eslint-disable-next-line @typescript-eslint/no-unused-vars | |
44 | ({ transactionSetInterval, ...connectorStatusRest }) => connectorStatusRest | |
45 | ); | |
09989bb8 JB |
46 | let status: EvseStatusConfiguration; |
47 | switch (outputFormat) { | |
48 | case OutputFormat.worker: | |
49 | return { | |
50 | ...evseStatus, | |
51 | connectors: connectorsStatus, | |
52 | }; | |
53 | case OutputFormat.configuration: | |
54 | status = { | |
55 | ...evseStatus, | |
56 | connectorsStatus, | |
57 | }; | |
58 | delete (status as EvseStatusWorkerType).connectors; | |
59 | return status; | |
179ed367 JB |
60 | } |
61 | }); | |
62 | }; |