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