@spytecgps/nova-orm 1.0.61 → 1.0.63

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,7 @@
1
1
  import { DataSource, EntityTarget, LoggerOptions, ObjectLiteral, QueryRunner, ReplicationMode, Repository, SelectQueryBuilder } from 'typeorm';
2
+ import { BaseParams } from './types/common';
2
3
  import { Logger } from './types/logger';
3
- export type queryBuilderHandler<T> = (novaDataSource: NovaDataSource) => Promise<T>;
4
+ export type queryBuilderHandler<T> = (novaDataSource: NovaDataSource, queryRunner?: QueryRunner) => Promise<T>;
4
5
  export interface NovaDataSourceConfig {
5
6
  /**
6
7
  * Database username.
@@ -34,7 +35,7 @@ export interface NovaDataSourceConfig {
34
35
  export declare class NovaDataSource {
35
36
  protected readonly dataSource: DataSource;
36
37
  protected readonly logger: Logger;
37
- constructor(config: NovaDataSourceConfig, logger: Logger);
38
+ constructor(config: NovaDataSourceConfig, logger: Logger, replicaConfig?: NovaDataSourceConfig);
38
39
  /**
39
40
  * Performs connection to the database.
40
41
  */
@@ -67,5 +68,6 @@ export declare class NovaDataSource {
67
68
  * if you perform reads you can use slave databases.
68
69
  */
69
70
  createQueryRunner(mode?: ReplicationMode): QueryRunner;
70
- safeQuery<T>(queryBuilderHandler: queryBuilderHandler<T>, tag?: string): Promise<T>;
71
+ createQueryRunnerFromParams(params: BaseParams): QueryRunner;
72
+ safeQuery<T>(queryBuilderHandler: queryBuilderHandler<T>, tag?: string, queryRunner?: QueryRunner): Promise<T>;
71
73
  }
@@ -5,7 +5,7 @@ import { QueryLogger } from './utils/queryLogger';
5
5
  export class NovaDataSource {
6
6
  dataSource;
7
7
  logger;
8
- constructor(config, logger) {
8
+ constructor(config, logger, replicaConfig) {
9
9
  this.logger = logger;
10
10
  const entities = [];
11
11
  for (const key in Entities) {
@@ -21,15 +21,17 @@ export class NovaDataSource {
21
21
  subscribers.push(subscriber);
22
22
  }
23
23
  }
24
- this.dataSource = new DataSource({
25
- type: 'mysql',
26
- connectorPackage: 'mysql2',
24
+ const baseConfig = {
27
25
  host: 'aws.connect.psdb.cloud',
28
26
  port: 3306,
29
27
  database: 'nova',
30
28
  ssl: {
31
29
  rejectUnauthorized: true,
32
30
  },
31
+ };
32
+ this.dataSource = new DataSource({
33
+ type: 'mysql',
34
+ connectorPackage: 'mysql2',
33
35
  synchronize: false,
34
36
  logging: true,
35
37
  logger: new QueryLogger(this.logger, config.logging),
@@ -40,7 +42,27 @@ export class NovaDataSource {
40
42
  extra: {
41
43
  decimalNumbers: true,
42
44
  },
45
+ ...baseConfig,
43
46
  ...config,
47
+ replication: {
48
+ master: {
49
+ ...baseConfig,
50
+ ...config,
51
+ },
52
+ slaves: replicaConfig
53
+ ? [
54
+ {
55
+ ...baseConfig,
56
+ ...replicaConfig,
57
+ },
58
+ ]
59
+ : [
60
+ {
61
+ ...baseConfig,
62
+ ...config,
63
+ },
64
+ ],
65
+ },
44
66
  });
45
67
  }
46
68
  /**
@@ -94,10 +116,14 @@ export class NovaDataSource {
94
116
  createQueryRunner(mode) {
95
117
  return this.dataSource.createQueryRunner(mode);
96
118
  }
97
- async safeQuery(queryBuilderHandler, tag) {
119
+ createQueryRunnerFromParams(params) {
120
+ const replicationMode = params.options?.forceMaster ? 'master' : 'slave';
121
+ return this.dataSource.createQueryRunner(replicationMode);
122
+ }
123
+ async safeQuery(queryBuilderHandler, tag, queryRunner) {
98
124
  try {
99
125
  await this.connect();
100
- const result = await queryBuilderHandler(this);
126
+ const result = await queryBuilderHandler(this, queryRunner);
101
127
  return result;
102
128
  }
103
129
  catch (error) {
@@ -105,6 +131,9 @@ export class NovaDataSource {
105
131
  throw error;
106
132
  }
107
133
  finally {
134
+ if (queryRunner) {
135
+ await queryRunner.release();
136
+ }
108
137
  await this.disconnect();
109
138
  }
110
139
  }
@@ -1 +1 @@
1
- {"version":3,"file":"novaDataSource.js","sourceRoot":"","sources":["../src/novaDataSource.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"novaDataSource.js","sourceRoot":"","sources":["../src/novaDataSource.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@ import { NovaDataSourceConfig } from '../novaDataSource';
2
2
  import { Logger } from '../types/logger';
3
3
  export declare class BaseRepository {
4
4
  protected readonly novaDataSourceConfig: NovaDataSourceConfig;
5
+ protected readonly replicaNovaDataSourceConfig?: NovaDataSourceConfig;
5
6
  protected readonly logger: Logger;
6
- constructor(config: NovaDataSourceConfig, logger: Logger);
7
+ constructor(config: NovaDataSourceConfig, logger: Logger, replicaConfig?: NovaDataSourceConfig);
7
8
  }
@@ -1,9 +1,11 @@
1
1
  import { ConsoleLogger } from '../utils/consoleLogger';
2
2
  export class BaseRepository {
3
3
  novaDataSourceConfig;
4
+ replicaNovaDataSourceConfig;
4
5
  logger;
5
- constructor(config, logger) {
6
+ constructor(config, logger, replicaConfig) {
6
7
  this.novaDataSourceConfig = config;
8
+ this.replicaNovaDataSourceConfig = replicaConfig;
7
9
  this.logger = logger ?? new ConsoleLogger();
8
10
  }
9
11
  }
@@ -1 +1 @@
1
- {"version":3,"file":"baseRepository.js","sourceRoot":"","sources":["../../src/repositories/baseRepository.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAA;AAEtD,MAAM,OAAO,cAAc;IACN,oBAAoB,CAAsB;IAC1C,MAAM,CAAQ;IAEjC,YAAY,MAA4B,EAAE,MAAc;QACtD,IAAI,CAAC,oBAAoB,GAAG,MAAM,CAAA;QAClC,IAAI,CAAC,MAAM,GAAG,MAAM,IAAI,IAAI,aAAa,EAAE,CAAA;IAC7C,CAAC;CACF"}
1
+ {"version":3,"file":"baseRepository.js","sourceRoot":"","sources":["../../src/repositories/baseRepository.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAA;AAEtD,MAAM,OAAO,cAAc;IACN,oBAAoB,CAAsB;IAC1C,2BAA2B,CAAuB;IAClD,MAAM,CAAQ;IAEjC,YAAY,MAA4B,EAAE,MAAc,EAAE,aAAoC;QAC5F,IAAI,CAAC,oBAAoB,GAAG,MAAM,CAAA;QAClC,IAAI,CAAC,2BAA2B,GAAG,aAAa,CAAA;QAChD,IAAI,CAAC,MAAM,GAAG,MAAM,IAAI,IAAI,aAAa,EAAE,CAAA;IAC7C,CAAC;CACF"}
@@ -26,6 +26,7 @@ export const createPosition = async (novaDataSource, params, logger) => {
26
26
  gpsUtcTime: params.gpsUtcTime,
27
27
  externalBatteryPercentage: params.externalBatteryPercentage,
28
28
  externalPowerVoltage: params.externalPowerVoltage,
29
+ //azimuth: params.azimuth,
29
30
  };
30
31
  const createdPosition = await positionsRepository.save(newPosition);
31
32
  if (!createdPosition) {
@@ -69,6 +70,7 @@ export const upsertPositions = async (novaDataSource, params, logger) => {
69
70
  gpsUtcTime: param.gpsUtcTime,
70
71
  externalBatteryPercentage: param.externalBatteryPercentage,
71
72
  externalPowerVoltage: param.externalPowerVoltage,
73
+ //azimuth: param.azimuth,
72
74
  };
73
75
  positions.push(newPosition);
74
76
  });
@@ -1 +1 @@
1
- {"version":3,"file":"createPosition.js","sourceRoot":"","sources":["../../../src/repositories/positions/createPosition.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"createPosition.js","sourceRoot":"","sources":["../../../src/repositories/positions/createPosition.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { Position } from '../../entities/position';
2
+ import { mapToPositionReport } from './mapping/mapToPositionReport';
2
3
  export const getPositionsReportByClient = async (novaDataSource, params, logger) => {
3
4
  if (!params.filters.clientId) {
4
5
  return [];
@@ -64,18 +65,21 @@ export const getPositionsReportByClient = async (novaDataSource, params, logger)
64
65
  'p.actualDate as actualDate',
65
66
  'p.lat as lat',
66
67
  'p.lon as lon',
68
+ 'p.messageId as messageId',
69
+ 'p.sendTime as sendTime',
67
70
  'p.address as address',
68
71
  'p.speed as speed',
69
72
  'p.odometer as odometer',
70
73
  'p.batteryPercentage as batteryPercentage',
71
74
  'p.externalPowerVoltage as externalPowerVoltage',
72
75
  'p.externalBatteryPercentage as externalBatteryPercentage',
76
+ //'p.azimuth as azimuth', //TODO: uncomment when azimuth is available in the database
73
77
  `sub.totalCount as totalCount`,
74
78
  ])
75
79
  .limit(params.pagingOptions.pageSize)
76
80
  .offset(params.pagingOptions.pageSize * params.pagingOptions.pageIndex)
77
81
  .getRawMany();
78
- return positions;
82
+ return positions.map(mapToPositionReport);
79
83
  }
80
84
  catch (error) {
81
85
  logger.error({ error }, 'PositionsRepository::GetPositionsReportByClientId error');
@@ -1 +1 @@
1
- {"version":3,"file":"getPositionsReportByClient.js","sourceRoot":"","sources":["../../../src/repositories/positions/getPositionsReportByClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"getPositionsReportByClient.js","sourceRoot":"","sources":["../../../src/repositories/positions/getPositionsReportByClient.ts"],"names":[],"mappings":"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"}
@@ -53,7 +53,7 @@ export class PositionRepository extends BaseRepository {
53
53
  this.logger.trace(params, `PositionsRepository::this.createPosition started with params`);
54
54
  const novaDataSource = new NovaDataSource(this.novaDataSourceConfig, this.logger);
55
55
  const result = await upsertPositions(novaDataSource, params, this.logger);
56
- this.logger.trace(result, 'PositionsRepository::insertPositions result');
56
+ this.logger.trace({ length: result.length }, 'PositionsRepository::insertPositions result');
57
57
  return result;
58
58
  }
59
59
  /**
@@ -65,7 +65,7 @@ export class PositionRepository extends BaseRepository {
65
65
  this.logger.trace(params, `PositionsRepository::this.getPositionsByImei started with params`);
66
66
  const novaDataSource = new NovaDataSource(this.novaDataSourceConfig, this.logger);
67
67
  const result = await getPositionsByImei(novaDataSource, params, this.logger);
68
- this.logger.trace(result, 'PositionsRepository::getPositionsByImei result');
68
+ this.logger.trace({ length: result.length }, 'PositionsRepository::getPositionsByImei result');
69
69
  return result;
70
70
  }
71
71
  /**
@@ -88,7 +88,7 @@ export class PositionRepository extends BaseRepository {
88
88
  this.logger.trace(params, `PositionsRepository::getPositionsReportByClientId started with params`);
89
89
  const novaDataSource = new NovaDataSource(this.novaDataSourceConfig, this.logger);
90
90
  const result = await getPositionsReportByClient(novaDataSource, params, this.logger);
91
- this.logger.trace(result, 'PositionsRepository::getPositionsReportByClientId result');
91
+ this.logger.trace({ length: result.length }, 'PositionsRepository::getPositionsReportByClientId result');
92
92
  return result;
93
93
  }
94
94
  async getLatestPositionByImei(params) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/repositories/positions/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/repositories/positions/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import { Position } from '../../../entities';
2
+ import { PositionReport } from '../../../types/position';
3
+ export declare const mapToPositionReport: (position: Position & {
4
+ totalCount: number;
5
+ }) => PositionReport;
@@ -0,0 +1,21 @@
1
+ import { binaryBufferToUuidString } from '../../../utils/uuidHelpers';
2
+ export const mapToPositionReport = (position) => {
3
+ return {
4
+ imei: position.imei,
5
+ createdAt: position.createdAt,
6
+ actualDate: position.actualDate,
7
+ sendTime: position.sendTime,
8
+ messageId: binaryBufferToUuidString(position.messageId),
9
+ lat: position.lat,
10
+ lon: position.lon,
11
+ //azimuth: position.azimuth ?? 0,
12
+ address: position.address,
13
+ speed: position.speed,
14
+ odometer: position.odometer,
15
+ batteryPercentage: position.batteryPercentage,
16
+ externalPowerVoltage: position.externalPowerVoltage,
17
+ externalBatteryPercentage: position.externalBatteryPercentage,
18
+ totalCount: position.totalCount,
19
+ };
20
+ };
21
+ //# sourceMappingURL=mapToPositionReport.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mapToPositionReport.js","sourceRoot":"","sources":["../../../../src/repositories/positions/mapping/mapToPositionReport.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAA;AAErE,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,QAA2C,EAC3B,EAAE;IAClB,OAAO;QACL,IAAI,EAAE,QAAQ,CAAC,IAAI;QACnB,SAAS,EAAE,QAAQ,CAAC,SAAS;QAC7B,UAAU,EAAE,QAAQ,CAAC,UAAU;QAC/B,QAAQ,EAAE,QAAQ,CAAC,QAAQ;QAC3B,SAAS,EAAE,wBAAwB,CAAC,QAAQ,CAAC,SAAS,CAAC;QACvD,GAAG,EAAE,QAAQ,CAAC,GAAG;QACjB,GAAG,EAAE,QAAQ,CAAC,GAAG;QACjB,iCAAiC;QACjC,OAAO,EAAE,QAAQ,CAAC,OAAO;QACzB,KAAK,EAAE,QAAQ,CAAC,KAAK;QACrB,QAAQ,EAAE,QAAQ,CAAC,QAAQ;QAC3B,iBAAiB,EAAE,QAAQ,CAAC,iBAAiB;QAC7C,oBAAoB,EAAE,QAAQ,CAAC,oBAAoB;QACnD,yBAAyB,EAAE,QAAQ,CAAC,yBAAyB;QAC7D,UAAU,EAAE,QAAQ,CAAC,UAAU;KAChC,CAAA;AACH,CAAC,CAAA"}
@@ -1,12 +1,12 @@
1
- import { User } from '../../entities';
2
1
  import { binaryBufferToUuidString } from '../../utils/uuidHelpers';
3
2
  export const getUsersData = async (novaDataSource, params, logger) => {
4
3
  if (!params?.filters?.imei) {
5
4
  logger.warn({ params }, 'UsersRepository::getUsersData - missing required parameters');
6
5
  return [];
7
6
  }
8
- return novaDataSource.safeQuery(async (dataSource) => {
9
- const usersRepository = dataSource.getRepository(User);
7
+ // Force the query to run on master or slave
8
+ const queryRunner = novaDataSource.createQueryRunnerFromParams(params);
9
+ return novaDataSource.safeQuery(async (_dataSource, queryRunner) => {
10
10
  const query = `SELECT U.id as userId, U.telephone, U.email
11
11
  , UC.isMetric, coalesce (UC.timezone, '') as timezone, UC.alertsNotificationsOn, UC.speedUnits , UC.distanceUnits
12
12
  , AC.alertTypeId, AC.smsNotification, AC.emailNotification, AC.alertValue, AC.pushNotification , AC.appNotification , AC.alertMetadata
@@ -51,7 +51,7 @@ export const getUsersData = async (novaDataSource, params, logger) => {
51
51
  JOIN country AS CO
52
52
  ON CO.id = CASE WHEN(U.countryId IS NULL OR U.countryId = 0) THEN 236 ELSE U.countryId END
53
53
  WHERE D.imei = ?`;
54
- const result = await usersRepository.query(query, [params.filters.imei]);
54
+ const result = await queryRunner.query(query, [params.filters.imei]);
55
55
  return result.map(item => ({
56
56
  ...item,
57
57
  userId: binaryBufferToUuidString(item.userId),
@@ -65,6 +65,6 @@ export const getUsersData = async (novaDataSource, params, logger) => {
65
65
  phoneNumbers: item.phoneNumbers ? JSON.parse(item.phoneNumbers) : [],
66
66
  emailAddresses: item.emailAddresses ? JSON.parse(item.emailAddresses) : [],
67
67
  }));
68
- }, 'UsersRepository::getUsersData');
68
+ }, 'UsersRepository::getUsersData', queryRunner);
69
69
  };
70
70
  //# sourceMappingURL=getUserData.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"getUserData.js","sourceRoot":"","sources":["../../../src/repositories/users/getUserData.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAA;AAIrC,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAA;AAElE,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,EAC/B,cAA8B,EAC9B,MAA0B,EAC1B,MAAc,EACO,EAAE;IACvB,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE;QAC1B,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,6DAA6D,CAAC,CAAA;QACtF,OAAO,EAAE,CAAA;KACV;IAED,OAAO,cAAc,CAAC,SAAS,CAAC,KAAK,EAAE,UAA0B,EAAuB,EAAE;QACxF,MAAM,eAAe,GAAG,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,CAAA;QAEtD,MAAM,KAAK,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mCA2CiB,CAAA;QAE/B,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAA;QAExE,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACzB,GAAG,IAAI;YACP,MAAM,EAAE,wBAAwB,CAAC,IAAI,CAAC,MAAM,CAAC;YAC7C,OAAO,EAAE,IAAI,CAAC,OAAO,KAAK,CAAC;YAC3B,QAAQ,EAAE,IAAI,CAAC,QAAQ,KAAK,CAAC;YAC7B,oBAAoB,EAAE,IAAI,CAAC,qBAAqB,KAAK,CAAC;YACtD,eAAe,EAAE,IAAI,CAAC,eAAe,KAAK,CAAC;YAC3C,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,KAAK,CAAC;YAC/C,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,KAAK,CAAC;YAC7C,eAAe,EAAE,IAAI,CAAC,eAAe,KAAK,CAAC;YAC3C,YAAY,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE;YACpE,cAAc,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,EAAE;SAC3E,CAAC,CAAC,CAAA;IACL,CAAC,EAAE,+BAA+B,CAAC,CAAA;AACrC,CAAC,CAAA"}
1
+ {"version":3,"file":"getUserData.js","sourceRoot":"","sources":["../../../src/repositories/users/getUserData.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAA;AAElE,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,EAC/B,cAA8B,EAC9B,MAA0B,EAC1B,MAAc,EACO,EAAE;IACvB,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE;QAC1B,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,6DAA6D,CAAC,CAAA;QACtF,OAAO,EAAE,CAAA;KACV;IAED,4CAA4C;IAC5C,MAAM,WAAW,GAAG,cAAc,CAAC,2BAA2B,CAAC,MAAM,CAAC,CAAA;IAEtE,OAAO,cAAc,CAAC,SAAS,CAC7B,KAAK,EAAE,WAA2B,EAAE,WAAyB,EAAuB,EAAE;QACpF,MAAM,KAAK,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mCA2Ce,CAAA;QAE7B,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAA;QAEpE,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACzB,GAAG,IAAI;YACP,MAAM,EAAE,wBAAwB,CAAC,IAAI,CAAC,MAAM,CAAC;YAC7C,OAAO,EAAE,IAAI,CAAC,OAAO,KAAK,CAAC;YAC3B,QAAQ,EAAE,IAAI,CAAC,QAAQ,KAAK,CAAC;YAC7B,oBAAoB,EAAE,IAAI,CAAC,qBAAqB,KAAK,CAAC;YACtD,eAAe,EAAE,IAAI,CAAC,eAAe,KAAK,CAAC;YAC3C,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,KAAK,CAAC;YAC/C,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,KAAK,CAAC;YAC7C,eAAe,EAAE,IAAI,CAAC,eAAe,KAAK,CAAC;YAC3C,YAAY,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE;YACpE,cAAc,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,EAAE;SAC3E,CAAC,CAAC,CAAA;IACL,CAAC,EACD,+BAA+B,EAC/B,WAAW,CACZ,CAAA;AACH,CAAC,CAAA"}
@@ -9,9 +9,14 @@ export const getUsers = async (novaDataSource, params, logger) => {
9
9
  logger.warn({ params }, 'UsersRepository::getUsers - missing required parameters');
10
10
  return [];
11
11
  }
12
- return novaDataSource.safeQuery(async (dataSource) => {
12
+ // Force the query to run on master or slave
13
+ const queryRunner = novaDataSource.createQueryRunnerFromParams(params);
14
+ return novaDataSource.safeQuery(async (dataSource, queryRunner) => {
13
15
  const usersRepository = dataSource.getRepository(User);
14
16
  let queryBuilder = usersRepository.createQueryBuilder('user');
17
+ if (queryRunner) {
18
+ queryBuilder = queryBuilder.setQueryRunner(queryRunner);
19
+ }
15
20
  if (params.filters.emailList?.length) {
16
21
  queryBuilder = queryBuilder.where('LOWER(user.email) IN (:...emailList)', {
17
22
  emailList: params.filters.emailList.map(email => email.trim().toLowerCase()),
@@ -45,6 +50,6 @@ export const getUsers = async (novaDataSource, params, logger) => {
45
50
  queryBuilder = queryBuilder.orderBy('user.lastname', 'DESC');
46
51
  const result = await queryBuilder.getMany();
47
52
  return result;
48
- }, 'UsersRepository::getUsers');
53
+ }, 'UsersRepository::getUsers', queryRunner);
49
54
  };
50
55
  //# sourceMappingURL=getUsers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"getUsers.js","sourceRoot":"","sources":["../../../src/repositories/users/getUsers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAA;AAIrC,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAA;AAElE,MAAM,CAAC,MAAM,QAAQ,GAAG,KAAK,EAC3B,cAA8B,EAC9B,MAAsB,EACtB,MAAc,EACG,EAAE;IACnB,IACE,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM;QACnC,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ;QAC1B,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ;QAC1B,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM;QACxB,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EACxB;QACA,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,yDAAyD,CAAC,CAAA;QAClF,OAAO,EAAE,CAAA;KACV;IAED,OAAO,cAAc,CAAC,SAAS,CAAC,KAAK,EAAE,UAA0B,EAAmB,EAAE;QACpF,MAAM,eAAe,GAAG,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,CAAA;QAEtD,IAAI,YAAY,GAAG,eAAe,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAA;QAE7D,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE;YACpC,YAAY,GAAG,YAAY,CAAC,KAAK,CAAC,sCAAsC,EAAE;gBACxE,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;aAC7E,CAAC,CAAA;SACH;QAED,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE;YAC3B,YAAY,GAAG,YAAY,CAAC,QAAQ,CAClC,+FAA+F,EAC/F;gBACE,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE;aACzC,CACF,CAAA;SACF;QAED,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE;YAC3B,YAAY,GAAG,YAAY,CAAC,QAAQ,CAAC,2BAA2B,EAAE;gBAChE,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,QAAQ;aAClC,CAAC,CAAA;SACH;QAED,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE;YACzB,MAAM,YAAY,GAAG,wBAAwB,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;YAEpE,YAAY,GAAG,YAAY,CAAC,QAAQ,CAClC;;;oCAG4B,EAC5B;gBACE,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE;gBACpC,YAAY;aACb,CACF,CAAA;SACF;QAED,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE;YACzB,YAAY,GAAG,YAAY,CAAC,QAAQ,CAAC,uBAAuB,EAAE;gBAC5D,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM;aAC9B,CAAC,CAAA;SACH;QAED,YAAY,GAAG,YAAY,CAAC,OAAO,CAAC,eAAe,EAAE,MAAM,CAAC,CAAA;QAE5D,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,OAAO,EAAE,CAAA;QAE3C,OAAO,MAAM,CAAA;IACf,CAAC,EAAE,2BAA2B,CAAC,CAAA;AACjC,CAAC,CAAA"}
1
+ {"version":3,"file":"getUsers.js","sourceRoot":"","sources":["../../../src/repositories/users/getUsers.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAA;AAIrC,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAA;AAElE,MAAM,CAAC,MAAM,QAAQ,GAAG,KAAK,EAC3B,cAA8B,EAC9B,MAAsB,EACtB,MAAc,EACG,EAAE;IACnB,IACE,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM;QACnC,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ;QAC1B,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ;QAC1B,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM;QACxB,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EACxB;QACA,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,yDAAyD,CAAC,CAAA;QAClF,OAAO,EAAE,CAAA;KACV;IAED,4CAA4C;IAC5C,MAAM,WAAW,GAAG,cAAc,CAAC,2BAA2B,CAAC,MAAM,CAAC,CAAA;IAEtE,OAAO,cAAc,CAAC,SAAS,CAC7B,KAAK,EAAE,UAA0B,EAAE,WAAyB,EAAmB,EAAE;QAC/E,MAAM,eAAe,GAAG,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,CAAA;QAEtD,IAAI,YAAY,GAAG,eAAe,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAA;QAE7D,IAAI,WAAW,EAAE;YACf,YAAY,GAAG,YAAY,CAAC,cAAc,CAAC,WAAW,CAAC,CAAA;SACxD;QAED,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE;YACpC,YAAY,GAAG,YAAY,CAAC,KAAK,CAAC,sCAAsC,EAAE;gBACxE,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;aAC7E,CAAC,CAAA;SACH;QAED,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE;YAC3B,YAAY,GAAG,YAAY,CAAC,QAAQ,CAClC,+FAA+F,EAC/F;gBACE,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE;aACzC,CACF,CAAA;SACF;QAED,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE;YAC3B,YAAY,GAAG,YAAY,CAAC,QAAQ,CAAC,2BAA2B,EAAE;gBAChE,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,QAAQ;aAClC,CAAC,CAAA;SACH;QAED,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE;YACzB,MAAM,YAAY,GAAG,wBAAwB,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;YAEpE,YAAY,GAAG,YAAY,CAAC,QAAQ,CAClC;;;oCAG0B,EAC1B;gBACE,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE;gBACpC,YAAY;aACb,CACF,CAAA;SACF;QAED,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE;YACzB,YAAY,GAAG,YAAY,CAAC,QAAQ,CAAC,uBAAuB,EAAE;gBAC5D,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM;aAC9B,CAAC,CAAA;SACH;QAED,YAAY,GAAG,YAAY,CAAC,OAAO,CAAC,eAAe,EAAE,MAAM,CAAC,CAAA;QAE5D,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,OAAO,EAAE,CAAA;QAE3C,OAAO,MAAM,CAAA;IACf,CAAC,EACD,2BAA2B,EAC3B,WAAW,CACZ,CAAA;AACH,CAAC,CAAA"}
@@ -1,3 +1,8 @@
1
+ export interface BaseParams {
2
+ options?: {
3
+ forceMaster?: boolean;
4
+ };
5
+ }
1
6
  export interface ReportPagination {
2
7
  pagingOptions: {
3
8
  pageSize: number | 25;
@@ -42,6 +42,8 @@ export interface PositionReport {
42
42
  imei: string;
43
43
  createdAt: Date;
44
44
  actualDate: Date;
45
+ sendTime: Date;
46
+ messageId: string;
45
47
  lat: number;
46
48
  lon: number;
47
49
  address: string;
@@ -1,4 +1,5 @@
1
1
  import { User } from '../entities/user';
2
+ import { BaseParams } from './common';
2
3
  export interface GetUsersConfigurationByImeiParams {
3
4
  filters: {
4
5
  imei: string;
@@ -9,7 +10,7 @@ export interface GetUserByIdParams {
9
10
  id: string;
10
11
  };
11
12
  }
12
- export interface GetUsersParams {
13
+ export interface GetUsersParams extends BaseParams {
13
14
  filters: {
14
15
  emailList?: string[];
15
16
  userName?: string;
@@ -91,7 +92,7 @@ export interface UpdateUserParams {
91
92
  lastLoginAt?: Date;
92
93
  };
93
94
  }
94
- export interface GetUsersDataParams {
95
+ export interface GetUsersDataParams extends BaseParams {
95
96
  filters: {
96
97
  imei: string;
97
98
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@spytecgps/nova-orm",
3
- "version": "1.0.61",
3
+ "version": "1.0.63",
4
4
  "description": "ORM with PlanetScale",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",