Skip to content

Commit b8ff5b2

Browse files
author
NarrowsProjects
committed
EXPERIMENT: undo changes for GetAllLogsUseCase
1 parent 2a48c02 commit b8ff5b2

4 files changed

Lines changed: 35 additions & 18 deletions

File tree

lib/database/repositories/Repository.js

Lines changed: 16 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313

1414
const { dataSource } = require('../DataSource.js');
1515
const { QueryBuilder } = require('../utilities/QueryBuilder.js');
16+
const { OldQueryBuilder } = require('../utilities/OldQueryBuilder.js');
1617

1718
/**
1819
* Sequelize implementation of the Repository.
@@ -39,8 +40,8 @@ class Repository {
3940
findQuery.selectOnly();
4041
}
4142

42-
if (findQuery instanceof QueryBuilder) {
43-
findQuery = findQuery.toImplementation();
43+
if (findQuery instanceof QueryBuilder || findQuery instanceof OldQueryBuilder) {
44+
findQuery = findQuery.toImplementation(this.model);
4445
}
4546

4647
return this.model.count(findQuery);
@@ -53,7 +54,9 @@ class Repository {
5354
* @returns {Promise<array>} Promise object representing the full mock data
5455
*/
5556
async findAll(findQuery = {}) {
56-
return this.model.findAll(findQuery instanceof QueryBuilder ? findQuery.toImplementation() : findQuery);
57+
return this.model.findAll(findQuery instanceof QueryBuilder || findQuery instanceof OldQueryBuilder
58+
? findQuery.toImplementation(this.model)
59+
: findQuery);
5760
}
5861

5962
/**
@@ -67,9 +70,9 @@ class Repository {
6770
findQuery = dataSource.createQueryBuilder();
6871
}
6972

70-
if (findQuery instanceof QueryBuilder) {
73+
if (findQuery instanceof QueryBuilder || findQuery instanceof OldQueryBuilder) {
7174
findQuery.set('distinct', true);
72-
findQuery = findQuery.toImplementation();
75+
findQuery = findQuery.toImplementation(this.model);
7376
}
7477

7578
return this.model.findAndCountAll(findQuery);
@@ -82,8 +85,8 @@ class Repository {
8285
* @returns {Promise<Object|null>} Promise object representing the full mock data
8386
*/
8487
async findOne(findQuery = {}) {
85-
if (findQuery instanceof QueryBuilder) {
86-
findQuery = findQuery.toImplementation();
88+
if (findQuery instanceof QueryBuilder || findQuery instanceof OldQueryBuilder) {
89+
findQuery = findQuery.toImplementation(this.model);
8790
}
8891
findQuery.limit = 1;
8992
return this.model.findOne(findQuery);
@@ -132,8 +135,8 @@ class Repository {
132135
* @returns {Promise<*[]>} promise with list of removed entities
133136
*/
134137
async removeAll(findQuery) {
135-
if (findQuery instanceof QueryBuilder) {
136-
findQuery = findQuery.toImplementation();
138+
if (findQuery instanceof QueryBuilder || findQuery instanceof OldQueryBuilder) {
139+
findQuery = findQuery.toImplementation(this.model);
137140
}
138141

139142
const entities = await this.findAll(findQuery);
@@ -151,8 +154,8 @@ class Repository {
151154
* @returns {Promise|Null} Promise object representing the full mock data
152155
*/
153156
async removeOne(findQuery) {
154-
if (findQuery instanceof QueryBuilder) {
155-
findQuery = findQuery.toImplementation();
157+
if (findQuery instanceof QueryBuilder || findQuery instanceof OldQueryBuilder) {
158+
findQuery = findQuery.toImplementation(this.model);
156159
}
157160
findQuery.limit = 1;
158161

@@ -183,8 +186,8 @@ class Repository {
183186
* @return {Promise<void>} promise that resolves when the patch has been applied
184187
*/
185188
async updateAll(patch, findQuery) {
186-
if (findQuery instanceof QueryBuilder) {
187-
findQuery = findQuery.toImplementation();
189+
if (findQuery instanceof QueryBuilder || findQuery instanceof OldQueryBuilder) {
190+
findQuery = findQuery.toImplementation(this.model);
188191
}
189192

190193
return this.model.update(patch, findQuery);

lib/database/utilities/OldQueryBuilder.js

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212
*/
1313

1414
const { Op } = require('sequelize');
15-
const { QueryBuilder } = require('./QueryBuilder');
1615

1716
/**
1817
* Sequelize implementation of the WhereQueryBuilder.
@@ -429,13 +428,12 @@ class WhereAssociationQueryBuilder extends WhereQueryBuilder {
429428
/**
430429
* Sequelize implementation of the QueryBuilder.
431430
*/
432-
class OldQueryBuilder extends QueryBuilder {
431+
class OldQueryBuilder {
433432
/**
434433
* Creates a new `QueryBuilder` instance.
435434
* @param {Sequelize} sequelize the sequelize implementation
436435
*/
437436
constructor(sequelize) {
438-
super(sequelize);
439437
this._sequelize = sequelize;
440438
this.options = { where: {}, replacements: {} };
441439
}

lib/database/utilities/index.js

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
* or submit itself to any jurisdiction.
1212
*/
1313

14+
const { OldQueryBuilder: BaseOldQueryBuilder } = require('./OldQueryBuilder');
1415
const { QueryBuilder: BaseQueryBuilder } = require('./QueryBuilder');
1516
const TransactionHelper = require('./TransactionHelper');
1617

@@ -28,8 +29,22 @@ module.exports = (sequelize) => {
2829
}
2930
}
3031

32+
/**
33+
* For compatibility, provide a class to instantiate from here
34+
* @deprecated use createQueryBuilder instead
35+
*/
36+
class OldQueryBuilder extends BaseOldQueryBuilder {
37+
/**
38+
* Constructor
39+
*/
40+
constructor() {
41+
super(sequelize);
42+
}
43+
}
44+
3145
return {
3246
QueryBuilder,
47+
OldQueryBuilder,
3348

3449
/**
3550
* @deprecated use datasource instead

lib/usecases/run/GetAllRunsUseCase.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
* or submit itself to any jurisdiction.
1212
*/
1313

14-
const { repositories: { RunRepository }, utilities: { QueryBuilder } } = require('../../database');
14+
const { repositories: { RunRepository }, utilities: { QueryBuilder, OldQueryBuilder } } = require('../../database');
1515

1616
const { runAdapter } = require('../../database/adapters/index.js');
1717
const { ApiConfig } = require('../../config/index.js');
@@ -39,7 +39,7 @@ class GetAllRunsUseCase {
3939
* @return {Promise} Promise object represents the result of this use case.
4040
*/
4141
async execute(dto = {}) {
42-
const filteringQueryBuilder = new QueryBuilder();
42+
const filteringQueryBuilder = new OldQueryBuilder();
4343
const { query = {} } = dto;
4444
const { filter, page = {}, sort = { runNumber: 'desc' }, include: { effectiveQcFlags = false } = {} } = query;
4545

@@ -242,6 +242,7 @@ class GetAllRunsUseCase {
242242
fn('coalesce', col('time_trg_start'), col('time_o2_start')),
243243
fn('coalesce', fn('coalesce', col('time_trg_end'), col('time_o2_end')), fn('now')),
244244
);
245+
245246
// Duration limit is handled in milliseconds by the API, but the query works on microseconds
246247
filteringQueryBuilder.where(computedColumn).applyOperator(operator, durationLimit * 1000);
247248
}

0 commit comments

Comments
 (0)