@golemio/pid
Version:
Golemio PID Module
34 lines • 1.81 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.DelayComputationRedisRepository = void 0;
const DelayComputationDtoSchema_1 = require("../../../../schema-definitions/ropid-gtfs/redis/schemas/DelayComputationDtoSchema");
const const_1 = require("../../../../schema-definitions/vehicle-positions/redis/const");
const RedisModel_1 = require("@golemio/core/dist/integration-engine/models/RedisModel");
const golemio_errors_1 = require("@golemio/core/dist/shared/golemio-errors");
const golemio_validator_1 = require("@golemio/core/dist/shared/golemio-validator");
class DelayComputationRedisRepository extends RedisModel_1.RedisModel {
constructor() {
super("GTFSDelayComputationRedisRepository", {
decodeDataAfterGet: JSON.parse,
encodeDataBeforeSave: JSON.stringify,
isKeyConstructedFromData: true,
prefix: DelayComputationRedisRepository.NAMESPACE_PREFIX,
}, new golemio_validator_1.JSONSchemaValidator("GTFSDelayComputationRedisRepositoryValidator", DelayComputationDtoSchema_1.DelayComputationDtoSchema));
}
async expire(keys, ttlInSeconds) {
const pipeline = this.connection.pipeline();
for (const key of keys) {
const redisKey = `${this.prefix}:${key}`;
pipeline.expire(redisKey, ttlInSeconds);
}
try {
await pipeline.exec();
}
catch (err) {
throw new golemio_errors_1.GeneralError("Error while expiring keys in Redis", this.constructor.name, err);
}
}
}
exports.DelayComputationRedisRepository = DelayComputationRedisRepository;
DelayComputationRedisRepository.NAMESPACE_PREFIX = const_1.GTFS_DELAY_COMPUTATION_NAMESPACE_PREFIX;
//# sourceMappingURL=DelayComputationRedisRepository.js.map