UNPKG

@golemio/parkings

Version:
68 lines 2.83 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.ParkingsMeasurementsModels = void 0; const _sch_1 = require("../../schema-definitions"); const output_gateway_1 = require("@golemio/core/dist/output-gateway"); const golemio_errors_1 = require("@golemio/core/dist/shared/golemio-errors"); const sequelize_1 = __importDefault(require("@golemio/core/dist/shared/sequelize")); class ParkingsMeasurementsModels extends output_gateway_1.SequelizeModel { constructor(modelDefinition) { super(modelDefinition.name, modelDefinition.pgTableName, modelDefinition.outputSequelizeAttributes, { schema: _sch_1.Parkings.pgSchema, }); this.GetAll = async (options) => { const { measureFrom, measureTo, limit, offset, source, sourceId, minutesBefore, updatedSince } = options; const order = []; let where = {}; let attributes = { include: [], exclude: [] }; if (source) { where.source = { [sequelize_1.default.Op.in]: source, }; } if (sourceId) { where.source_id = sourceId; } if (measureFrom) { where.date_modified = measureTo ? { [sequelize_1.default.Op.between]: [measureFrom, measureTo] } : { [sequelize_1.default.Op.gte]: measureFrom }; } else { if (measureTo) { where.date_modified = { [sequelize_1.default.Op.lte]: measureTo }; } } if (minutesBefore) { where.updated_at = { [sequelize_1.default.Op.gte]: sequelize_1.default.literal(`NOW() - INTERVAL '${minutesBefore} minutes'`), }; } if (updatedSince) { where.updated_at = { [sequelize_1.default.Op.gte]: updatedSince, }; } order.push(["date_modified", "desc"]); try { return await this.sequelizeModel.findAll({ attributes, limit, offset, order, raw: true, where, }); } catch (err) { throw new golemio_errors_1.GeneralError(`Database error: ${err.message}`, "ParkingMeasurementsModel", err, 500); } }; this.GetOne = async () => { }; } } exports.ParkingsMeasurementsModels = ParkingsMeasurementsModels; //# sourceMappingURL=ParkingsMeasurementsModels.js.map