@citrineos/data
Version:
The OCPP data module which includes all persistence layer implementation.
36 lines • 1.5 kB
JavaScript
// SPDX-FileCopyrightText: 2025 Contributors to the CitrineOS Project
//
// SPDX-License-Identifier: Apache-2.0
import { ChangeConfiguration, SequelizeRepository } from '../index.js';
import { Logger } from 'tslog';
import { Sequelize } from 'sequelize-typescript';
export class SequelizeChangeConfigurationRepository extends SequelizeRepository {
constructor(config, logger, sequelizeInstance) {
super(config, ChangeConfiguration.MODEL_NAME, logger, sequelizeInstance);
}
async createOrUpdateChangeConfiguration(tenantId, configuration) {
let changeConfiguration;
await this.s.transaction(async (sequelizeTransaction) => {
const [savedConfig, created] = await this.readOrCreateByQuery(tenantId, {
where: {
tenantId: tenantId,
stationId: configuration.stationId,
key: configuration.key,
},
defaults: {
...configuration,
},
transaction: sequelizeTransaction,
});
if (created) {
changeConfiguration = savedConfig;
}
else {
changeConfiguration = await savedConfig.update({ ...configuration }, { transaction: sequelizeTransaction });
this.emit('updated', [changeConfiguration]);
}
});
return changeConfiguration;
}
}
//# sourceMappingURL=ChangeConfiguration.js.map