refactoring

This commit is contained in:
mpetrov 2024-09-09 16:17:00 +03:00
parent c4441eba72
commit f97598ee08
6 changed files with 20 additions and 23 deletions

View File

@ -11,9 +11,9 @@ export abstract class GatewayConnectorVersionProcessor<BasicConfig> {
getProcessedByVersion(): BasicConfig {
if (this.isVersionUpdateNeeded()) {
return this.configVersion > this.gatewayVersion
? this.getDowngradedVersion()
: this.getUpgradedVersion();
return this.configVersion < this.gatewayVersion
? this.getUpgradedVersion()
: this.getDowngradedVersion();
}
return this.connector.configurationJson as unknown as BasicConfig;

View File

@ -1,15 +1,14 @@
import {
GatewayConnectorVersionProcessor
} from '@home/components/widget/lib/gateway/abstract/gateway-connector-version-processor.abstract';
import { isEqual } from '@core/utils';
import {
GatewayConnector,
MQTTBasicConfig, MQTTBasicConfig_v3_5_2,
MQTTBasicConfig,
MQTTBasicConfig_v3_5_2,
MQTTLegacyBasicConfig,
RequestMappingData,
RequestType,
} from '@home/components/widget/lib/gateway/gateway-widget.models';
import { isEqual } from '@core/utils';
import { MqttVersionMappingUtil } from '@home/components/widget/lib/gateway/utils/mqtt-version-mapping.util';
} from '../gateway-widget.models';
import { MqttVersionMappingUtil } from '../utils/mqtt-version-mapping.util';
import { GatewayConnectorVersionProcessor } from './gateway-connector-version-processor.abstract';
export class MqttVersionProcessor extends GatewayConnectorVersionProcessor<MQTTBasicConfig> {
private readonly mqttRequestTypeKeys = Object.values(RequestType);
@ -20,7 +19,7 @@ export class MqttVersionProcessor extends GatewayConnectorVersionProcessor<MQTTB
) {
super(gatewayVersionStr, connector);
}
getUpgradedVersion(): MQTTBasicConfig {
getUpgradedVersion(): MQTTBasicConfig_v3_5_2 {
const {
connectRequests,
disconnectRequests,
@ -41,13 +40,13 @@ export class MqttVersionProcessor extends GatewayConnectorVersionProcessor<MQTTB
};
this.mqttRequestTypeKeys.forEach((key: RequestType) => {
const { [key]: removedKey, ...rest } = configurationJson as MQTTLegacyBasicConfig;
const { [key]: removedValue, ...rest } = configurationJson as MQTTLegacyBasicConfig;
configurationJson = { ...rest } as any;
});
this.cleanUpConfigJson(configurationJson as MQTTBasicConfig_v3_5_2);
return configurationJson as MQTTBasicConfig;
return configurationJson as MQTTBasicConfig_v3_5_2;
}
getDowngradedVersion(): MQTTLegacyBasicConfig {

View File

@ -32,7 +32,9 @@ export abstract class AbstractMqttBasicConfigComponent<BasicConfig> implements C
basicFormGroup: FormGroup;
mappingTypes = MappingType;
private destroy$ = new Subject<void>();
private onChange: (value: BasicConfig) => void;
private onTouched: () => void;

View File

@ -80,8 +80,8 @@ export class MqttBasicConfigComponent extends AbstractMqttBasicConfigComponent<M
maxNumberOfWorkers: broker.maxNumberOfWorkers,
maxMessageNumberPerWorker: broker.maxMessageNumberPerWorker,
} : {},
mapping: mapping || [],
broker: broker || {},
mapping: mapping ?? [],
broker: broker ?? {},
requestsMapping: this.getRequestDataArray(requestsMapping as Record<RequestType, RequestMappingData[]>),
};

View File

@ -243,10 +243,6 @@ export class GatewayConnectorComponent extends PageComponent implements AfterVie
delete value.class;
}
if (this.gatewayVersion && !value.configVersion) {
value.configVersion = this.gatewayVersion;
}
value.ts = Date.now();
return value;
@ -482,7 +478,7 @@ export class GatewayConnectorComponent extends PageComponent implements AfterVie
value.configurationJson = {} as ConnectorBaseConfig;
}
value.basicConfig = value.configurationJson;
this.updateConnector({...value, configVersion: this.gatewayVersion ?? ''});
this.updateConnector(value);
this.generate('basicConfig.broker.clientId');
setTimeout(() => this.saveConnector());
});

View File

@ -40,7 +40,7 @@ export class MqttVersionMappingUtil {
['attributeNameExpressionSource', 'responseTopicQoS', 'extensionConfig'];
static mapMappingToUpgradedVersion(
mapping: LegacyConverterConnectorMapping[] | ConverterConnectorMapping[]
mapping: LegacyConverterConnectorMapping[]
): ConverterConnectorMapping[] {
return mapping?.map(({ converter, topicFilter, subscriptionQos = 1 }) => {
const deviceInfo = converter.deviceInfo ?? this.extractConverterDeviceInfo(converter);
@ -54,12 +54,12 @@ export class MqttVersionMappingUtil {
this.cleanUpOldFields(newConverter);
return { converter: newConverter, topicFilter, subscriptionQos };
});
}) as ConverterConnectorMapping[];
}
static mapRequestsToUpgradedVersion(
requestMapping: Record<RequestType,
RequestMappingData[] | LegacyRequestMappingData[]>
LegacyRequestMappingData[]>
): Record<RequestType, RequestMappingData[]> {
return this.mqttRequestTypeKeys.reduce((acc, key: RequestType) => {
if (!requestMapping[key]) {