Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 2 additions & 3 deletions lib/usecases/environment/GetAllEnvironmentsUseCase.js
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ const { dataSource } = require('../../database/DataSource.js');
const { statusAcronyms } = require('../../domain/enums/StatusAcronyms.js');
const { unpackNumberRange } = require('../../utilities/rangeUtils.js');
const { splitStringToStringsTrimmed } = require('../../utilities/stringUtils.js');
const { setTimeRangeQuery } = require('../../utilities/setTimeRangeQuery.js');

/**
* Subquery to select the latest history item for each environment.
Expand Down Expand Up @@ -93,9 +94,7 @@ class GetAllEnvironmentsUseCase {
const filterQueryBuilder = prepareQueryBuilder();

if (created) {
const from = created.from !== undefined ? created.from : 0;
const to = created.to !== undefined ? created.to : Date.now();
filterQueryBuilder.where('createdAt').between(from, to);
setTimeRangeQuery(created, 'createdAt', filterQueryBuilder);
}

if (idsExpression) {
Expand Down
9 changes: 3 additions & 6 deletions lib/usecases/lhcFill/GetAllLhcFillsUseCase.js
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ const { ApiConfig } = require('../../config/index.js');
const { RunDefinition } = require('../../domain/enums/RunDefinition.js');
const { unpackNumberRange } = require('../../utilities/rangeUtils.js');
const { splitStringToStringsTrimmed } = require('../../utilities/stringUtils.js');
const { setTimeRangeQuery } = require('../../utilities/setTimeRangeQuery.js');

/**
* GetAllLhcFillsUseCase
Expand Down Expand Up @@ -54,15 +55,11 @@ class GetAllLhcFillsUseCase {
}

if (stableBeamsStart) {
const from = stableBeamsStart.from !== undefined ? stableBeamsStart.from : 0;
const to = stableBeamsStart.to !== undefined ? stableBeamsStart.to : new Date().getTime();
queryBuilder.where('stableBeamsStart').between(from, to);
setTimeRangeQuery(stableBeamsStart, 'stableBeamsStart', queryBuilder);
}

if (stableBeamsEnd) {
const from = stableBeamsEnd.from !== undefined ? stableBeamsEnd.from : 0;
const to = stableBeamsEnd.to !== undefined ? stableBeamsEnd.to : new Date().getTime();
queryBuilder.where('stableBeamsEnd').between(from, to);
setTimeRangeQuery(stableBeamsEnd, 'stableBeamsEnd', queryBuilder);
}

if (fillNumbers) {
Expand Down
5 changes: 2 additions & 3 deletions lib/usecases/log/GetAllLogsUseCase.js
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ const { ApiConfig } = require('../../config/index.js');
const { Op } = require('sequelize');
const { dataSource } = require('../../database/DataSource.js');
const { checkForFilterExclusion } = require('../common/checkForFilterExclusion.js');
const { setTimeRangeQuery } = require('../../utilities/setTimeRangeQuery.js');

/**
* Apply the given filter on the given query builder
Expand Down Expand Up @@ -73,9 +74,7 @@ const applyFilter = async (dataSource, queryBuilder, filter) => {
}

if (created) {
const from = created.from !== undefined ? created.from : 0;
const to = created.to !== undefined ? created.to : new Date().getTime();
queryBuilder.where('createdAt').between(from, to);
setTimeRangeQuery(created, 'createdAt', queryBuilder);
}

if (origin) {
Expand Down
13 changes: 4 additions & 9 deletions lib/usecases/run/GetAllRunsUseCase.js
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ const { qcFlagSummaryService } = require('../../server/services/qualityControlFl
const { DetectorType } = require('../../domain/enums/DetectorTypes.js');
const { unpackNumberRange } = require('../../utilities/rangeUtils.js');
const { splitStringToStringsTrimmed } = require('../../utilities/stringUtils.js');
const { setTimeRangeQuery } = require('../../utilities/setTimeRangeQuery.js');

/**
* GetAllRunsUseCase
Expand Down Expand Up @@ -151,21 +152,15 @@ class GetAllRunsUseCase {
}

if (o2start) {
const from = o2start.from !== undefined ? o2start.from : 0;
const to = o2start.to !== undefined ? o2start.to : new Date().getTime();
filteringQueryBuilder.where('timeO2Start').between(from, to);
setTimeRangeQuery(o2start, 'timeO2Start', filteringQueryBuilder);
}

if (o2end) {
const from = o2end.from !== undefined ? o2end.from : 0;
const to = o2end.to !== undefined ? o2end.to : new Date().getTime();
filteringQueryBuilder.where('timeO2End').between(from, to);
setTimeRangeQuery(o2end, 'timeO2End', filteringQueryBuilder);
}

if (updatedAt) {
const from = updatedAt.from ?? 0;
const to = updatedAt.to ?? new Date().getTime();
filteringQueryBuilder.where('updatedAt').between(from, to);
setTimeRangeQuery(updatedAt, 'updatedAt', filteringQueryBuilder);
}

if (triggerValues) {
Expand Down
26 changes: 26 additions & 0 deletions lib/utilities/setTimeRangeQuery.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
/**
* @license
* Copyright CERN and copyright holders of ALICE O2. This software is
* distributed under the terms of the GNU General Public License v3 (GPL
* Version 3), copied verbatim in the file "COPYING".
*
* See http://alice-o2.web.cern.ch/license for full licensing information.
*
* In applying this license CERN does not waive the privileges and immunities
* granted to it by virtue of its status as an Intergovernmental Organization
* or submit itself to any jurisdiction.
*/

/**
* Function that sets a time range in a QueryBuilder.
*
* @param {object} timerange an object that defines a time range to add to the query
* @param {number} timerange.from the lower bound of the time range
* @param {number} timerange.to the upper bound of the time range
* @param {string} attribute the model attribute for which the range will be set
* @param {QueryBuilder} queryBuilder queryBuider instance in which the time range will be set.
* @returns {void}
*/
export function setTimeRangeQuery({ from = 0, to = Date.now() }, attribute, queryBuilder) {
queryBuilder.where(attribute).between(from, to);
}