UNPKG

@citrineos/data

Version:

The OCPP data module which includes all persistence layer implementation.

70 lines 3.57 kB
"use strict"; // Copyright Contributors to the CitrineOS Project // // SPDX-License-Identifier: Apache 2.0 var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.SequelizeMessageInfoRepository = void 0; const Base_1 = require("./Base"); const MessageInfo_1 = require("../model/MessageInfo"); class SequelizeMessageInfoRepository extends Base_1.SequelizeRepository { constructor(config, logger, sequelizeInstance) { super(config, MessageInfo_1.MessageInfo.MODEL_NAME, logger, sequelizeInstance); } deactivateAllByStationId(tenantId, stationId) { return __awaiter(this, void 0, void 0, function* () { yield this.updateAllByQuery(tenantId, { active: false, }, { where: { stationId: stationId, active: true, }, returning: false, }); }); } createOrUpdateByMessageInfoTypeAndStationId(tenantId, message, stationId, componentId) { return __awaiter(this, void 0, void 0, function* () { return yield this.s.transaction((transaction) => __awaiter(this, void 0, void 0, function* () { var _a, _b, _c, _d; const savedMessageInfo = yield this.s.models[MessageInfo_1.MessageInfo.MODEL_NAME].findOne({ where: { stationId: stationId, id: message.id, }, transaction: transaction, }); const messageInfo = { tenantId: tenantId, stationId: stationId, displayComponentId: componentId !== null && componentId !== void 0 ? componentId : null, id: message.id, priority: message.priority, state: (_a = message.state) !== null && _a !== void 0 ? _a : null, startDateTime: (_b = message.startDateTime) !== null && _b !== void 0 ? _b : null, endDateTime: (_c = message.endDateTime) !== null && _c !== void 0 ? _c : null, transactionId: (_d = message.transactionId) !== null && _d !== void 0 ? _d : null, message: message.message, active: true, }; if (savedMessageInfo) { return (yield this.updateByKey(tenantId, messageInfo, savedMessageInfo.dataValues.databaseId)); } const createdMessageInfo = yield MessageInfo_1.MessageInfo.create(messageInfo, { transaction }); this.emit('created', [createdMessageInfo]); return createdMessageInfo; })); }); } } exports.SequelizeMessageInfoRepository = SequelizeMessageInfoRepository; //# sourceMappingURL=MessageInfo.js.map