-import { ConfigurationKey } from '../types/ChargingStationOcppConfiguration';
-import { StandardParametersKey } from '../types/ocpp/Configuration';
-import logger from '../utils/Logger';
-import type ChargingStation from './ChargingStation';
+import type { ChargingStation } from './internal';
+import type { ConfigurationKey, ConfigurationKeyType } from '../types';
+import { logger } from '../utils';
+
+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() {
public static getConfigurationKey(
chargingStation: ChargingStation,
- key: string | StandardParametersKey,
+ key: ConfigurationKeyType,
caseInsensitive = false
): ConfigurationKey | undefined {
- return chargingStation.ocppConfiguration.configurationKey.find((configElement) => {
+ return chargingStation.ocppConfiguration?.configurationKey?.find((configElement) => {
if (caseInsensitive) {
return configElement.key.toLowerCase() === key.toLowerCase();
}
public static addConfigurationKey(
chargingStation: ChargingStation,
- key: string | StandardParametersKey,
+ key: ConfigurationKeyType,
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;
keyFound = undefined;
}
if (!keyFound) {
- chargingStation.ocppConfiguration.configurationKey.push({
+ chargingStation.ocppConfiguration?.configurationKey?.push({
key,
readonly: options.readonly,
value,
public static setConfigurationKeyValue(
chargingStation: ChargingStation,
- key: string | StandardParametersKey,
+ key: ConfigurationKeyType,
value: string,
caseInsensitive = false
): void {
public static deleteConfigurationKey(
chargingStation: ChargingStation,
- key: string | StandardParametersKey,
- params: { save?: boolean; caseInsensitive?: boolean } = { save: true, caseInsensitive: false }
- ): ConfigurationKey[] {
+ key: ConfigurationKeyType,
+ 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
);