@golemio/parkings
Version:
Golemio Parkings Module
68 lines • 2.83 kB
JavaScript
;
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