UNPKG

@citrineos/data

Version:

The OCPP data module which includes all persistence layer implementation.

39 lines 1.58 kB
// SPDX-FileCopyrightText: 2025 Contributors to the CitrineOS Project // // SPDX-License-Identifier: Apache-2.0 import { SequelizeRepository } from './Base.js'; import { Certificate } from '../model/index.js'; import { Sequelize } from 'sequelize-typescript'; import { Logger } from 'tslog'; export class SequelizeCertificateRepository extends SequelizeRepository { constructor(config, logger, sequelizeInstance) { super(config, Certificate.MODEL_NAME, logger, sequelizeInstance); } async createOrUpdateCertificate(tenantId, certificate) { certificate.tenantId = tenantId; return await this.s.transaction(async (transaction) => { const savedCert = await this.s.models[Certificate.MODEL_NAME].findOne({ where: { serialNumber: certificate.serialNumber, issuerName: certificate.issuerName, }, transaction, }); if (!savedCert) { const savedCertificate = await certificate.save({ transaction }); this.emit('created', [savedCertificate]); return savedCertificate; } else { return (await this.updateAllByQuery(tenantId, certificate, { where: { serialNumber: certificate.serialNumber, issuerName: certificate.issuerName, }, transaction, }))[0]; } }); } } //# sourceMappingURL=Certificate.js.map