X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;ds=inline;f=src%2Fcharging-station%2FChargingStationConfigurationUtils.ts;h=e31e6bfb010f44fffde1580d7a63d7ae178307c9;hb=acda9cab8724c9b51d1f5f9a8a12c6dd3617ff55;hp=9c182ea5733e0aae7a3e135106f44fb9da6f89d9;hpb=17ac262c08a637a9aef23c350176bf476ad212ef;p=e-mobility-charging-stations-simulator.git diff --git a/src/charging-station/ChargingStationConfigurationUtils.ts b/src/charging-station/ChargingStationConfigurationUtils.ts index 9c182ea5..e31e6bfb 100644 --- a/src/charging-station/ChargingStationConfigurationUtils.ts +++ b/src/charging-station/ChargingStationConfigurationUtils.ts @@ -1,15 +1,23 @@ -import ChargingStation from './ChargingStation'; -import { ConfigurationKey } from '../types/ChargingStationOcppConfiguration'; -import { StandardParametersKey } from '../types/ocpp/Configuration'; +import type ChargingStation from './ChargingStation'; +import type { ConfigurationKey } from '../types/ChargingStationOcppConfiguration'; +import type { StandardParametersKey } from '../types/ocpp/Configuration'; import logger from '../utils/Logger'; +type ConfigurationKeyOptions = { readonly?: boolean; visible?: boolean; reboot?: boolean }; +type DeleteConfigurationKeyParams = { save?: boolean; caseInsensitive?: boolean }; +type AddConfigurationKeyParams = { overwrite?: boolean; save?: boolean }; + export class ChargingStationConfigurationUtils { + private constructor() { + // This is intentional + } + public static getConfigurationKey( chargingStation: ChargingStation, key: string | StandardParametersKey, caseInsensitive = false ): ConfigurationKey | undefined { - return chargingStation.ocppConfiguration.configurationKey.find((configElement) => { + return chargingStation.ocppConfiguration?.configurationKey?.find((configElement) => { if (caseInsensitive) { return configElement.key.toLowerCase() === key.toLowerCase(); } @@ -21,14 +29,14 @@ export class ChargingStationConfigurationUtils { chargingStation: ChargingStation, key: string | StandardParametersKey, value: string, - options: { readonly?: boolean; visible?: boolean; reboot?: boolean } = { + options: ConfigurationKeyOptions = { readonly: false, visible: true, reboot: false, }, - params: { overwrite?: boolean; save?: boolean } = { overwrite: false, save: false } + params: AddConfigurationKeyParams = { overwrite: false, save: false } ): void { - options = options ?? ({} as { readonly?: boolean; visible?: boolean; reboot?: boolean }); + options = options ?? ({} as ConfigurationKeyOptions); options.readonly = options?.readonly ?? false; options.visible = options?.visible ?? true; options.reboot = options?.reboot ?? false; @@ -40,7 +48,7 @@ export class ChargingStationConfigurationUtils { keyFound = undefined; } if (!keyFound) { - chargingStation.ocppConfiguration.configurationKey.push({ + chargingStation.ocppConfiguration?.configurationKey?.push({ key, readonly: options.readonly, value, @@ -83,15 +91,15 @@ export class ChargingStationConfigurationUtils { public static deleteConfigurationKey( chargingStation: ChargingStation, key: string | StandardParametersKey, - params: { save?: boolean; caseInsensitive?: boolean } = { save: true, caseInsensitive: false } - ): ConfigurationKey[] { + params: DeleteConfigurationKeyParams = { save: true, caseInsensitive: false } + ): ConfigurationKey[] | undefined { const keyFound = ChargingStationConfigurationUtils.getConfigurationKey( chargingStation, key, params?.caseInsensitive ); if (keyFound) { - const deletedConfigurationKey = chargingStation.ocppConfiguration.configurationKey.splice( + const deletedConfigurationKey = chargingStation.ocppConfiguration?.configurationKey?.splice( chargingStation.ocppConfiguration.configurationKey.indexOf(keyFound), 1 );