@spytecgps/nova-orm 1.0.70 → 1.0.71

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.
@@ -6,14 +6,29 @@ export const getDeviceTripConfiguration = async (novaDataSource, params, logger)
6
6
  logger.warn('TripRepository::getTrips missing required parameters');
7
7
  return null;
8
8
  }
9
- return novaDataSource.safeQuery(async (safeDataSource) => {
9
+ // Force the query to run on master or slave
10
+ const dbQueryRunner = novaDataSource.createQueryRunnerFromParams(params);
11
+ return novaDataSource.safeQuery(async (safeDataSource, queryRunner) => {
10
12
  const repository = safeDataSource.getRepository(Device);
11
- const queryBuilder = repository
12
- .createQueryBuilder('device')
13
- .innerJoin(ClientDeviceSetting, 'cds', 'cds.imei = device.imei')
13
+ const queryBuilder = repository.createQueryBuilder('device');
14
+ if (queryRunner) {
15
+ queryBuilder.setQueryRunner(queryRunner);
16
+ }
17
+ const deviceCdsInnerJoinCondition = params?.filters?.clientId
18
+ ? 'cds.clientId = device.clientId AND cds.imei = device.imei'
19
+ : 'cds.imei = device.imei';
20
+ queryBuilder
21
+ .innerJoin(ClientDeviceSetting, 'cds', deviceCdsInnerJoinCondition)
14
22
  .leftJoin(UserActivationDevice, 'uad', 'uad.imei = device.imei');
15
23
  const { filters } = params;
16
- queryBuilder.where('device.imei = :imei', { imei: filters.imei });
24
+ if (filters.clientId) {
25
+ queryBuilder
26
+ .where('device.clientId = :clientId', { clientId: filters.clientId })
27
+ .andWhere('device.imei = :imei', { imei: filters.imei });
28
+ }
29
+ else {
30
+ queryBuilder.where('device.imei = :imei', { imei: filters.imei });
31
+ }
17
32
  const deviceTripConfiguration = await queryBuilder
18
33
  .select([
19
34
  'device.clientId as clientId',
@@ -29,6 +44,6 @@ export const getDeviceTripConfiguration = async (novaDataSource, params, logger)
29
44
  ...deviceTripConfiguration,
30
45
  generateTrips: deviceTripConfiguration.generateTrips === 1,
31
46
  };
32
- }, 'TripRepository::getTrips error');
47
+ }, 'TripRepository::getTrips error', dbQueryRunner);
33
48
  };
34
49
  //# sourceMappingURL=getDeviceTripConfiguration.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"getDeviceTripConfiguration.js","sourceRoot":"","sources":["../../../src/repositories/trips/getDeviceTripConfiguration.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAA;AAGlF,OAAO,EAGL,gDAAgD,GACjD,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAA;AAEjE,MAAM,CAAC,MAAM,0BAA0B,GAAG,KAAK,EAC7C,cAA8B,EAC9B,MAAsC,EACtC,MAAc,EACd,EAAE;IACF,IACE,kBAAkB,CAChB,MAAM,EACN,gDAAgD,CACjD,EACD;QACA,MAAM,CAAC,IAAI,CAAC,sDAAsD,CAAC,CAAA;QACnE,OAAO,IAAI,CAAA;KACZ;IAED,OAAO,cAAc,CAAC,SAAS,CAAC,KAAK,EAAE,cAA8B,EAEnE,EAAE;QACF,MAAM,UAAU,GAAG,cAAc,CAAC,aAAa,CAAC,MAAM,CAAC,CAAA;QAEvD,MAAM,YAAY,GAAG,UAAU;aAC5B,kBAAkB,CAAC,QAAQ,CAAC;aAC5B,SAAS,CAAC,mBAAmB,EAAE,KAAK,EAAE,wBAAwB,CAAC;aAC/D,QAAQ,CAAC,oBAAoB,EAAE,KAAK,EAAE,wBAAwB,CAAC,CAAA;QAElE,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,CAAA;QAE1B,YAAY,CAAC,KAAK,CAAC,qBAAqB,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAA;QAEjE,MAAM,uBAAuB,GAAG,MAAM,YAAY;aAC/C,MAAM,CAAC;YACN,6BAA6B;YAC7B,qCAAqC;YACrC,gCAAgC;YAChC,oCAAoC;YACpC,kDAAkD;YAClD,sDAAsD;YACtD,oCAAoC;SACrC,CAAC;aACD,SAAS,EAAE,CAAA;QAEd,OAAO;YACL,GAAG,uBAAuB;YAC1B,aAAa,EAAE,uBAAuB,CAAC,aAAa,KAAK,CAAC;SAChC,CAAA;IAC9B,CAAC,EAAE,gCAAgC,CAAC,CAAA;AACtC,CAAC,CAAA"}
1
+ {"version":3,"file":"getDeviceTripConfiguration.js","sourceRoot":"","sources":["../../../src/repositories/trips/getDeviceTripConfiguration.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAA;AAGlF,OAAO,EAGL,gDAAgD,GACjD,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAA;AAEjE,MAAM,CAAC,MAAM,0BAA0B,GAAG,KAAK,EAC7C,cAA8B,EAC9B,MAAsC,EACtC,MAAc,EACd,EAAE;IACF,IACE,kBAAkB,CAChB,MAAM,EACN,gDAAgD,CACjD,EACD;QACA,MAAM,CAAC,IAAI,CAAC,sDAAsD,CAAC,CAAA;QACnE,OAAO,IAAI,CAAA;KACZ;IAED,4CAA4C;IAC5C,MAAM,aAAa,GAAG,cAAc,CAAC,2BAA2B,CAAC,MAAM,CAAC,CAAA;IAExE,OAAO,cAAc,CAAC,SAAS,CAC7B,KAAK,EACH,cAA8B,EAC9B,WAAyB,EACS,EAAE;QACpC,MAAM,UAAU,GAAG,cAAc,CAAC,aAAa,CAAC,MAAM,CAAC,CAAA;QAEvD,MAAM,YAAY,GAAG,UAAU,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAA;QAE5D,IAAI,WAAW,EAAE;YACf,YAAY,CAAC,cAAc,CAAC,WAAW,CAAC,CAAA;SACzC;QAED,MAAM,2BAA2B,GAAG,MAAM,EAAE,OAAO,EAAE,QAAQ;YAC3D,CAAC,CAAC,2DAA2D;YAC7D,CAAC,CAAC,wBAAwB,CAAA;QAE5B,YAAY;aACT,SAAS,CAAC,mBAAmB,EAAE,KAAK,EAAE,2BAA2B,CAAC;aAClE,QAAQ,CAAC,oBAAoB,EAAE,KAAK,EAAE,wBAAwB,CAAC,CAAA;QAElE,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,CAAA;QAE1B,IAAI,OAAO,CAAC,QAAQ,EAAE;YACpB,YAAY;iBACT,KAAK,CAAC,6BAA6B,EAAE,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC;iBACpE,QAAQ,CAAC,qBAAqB,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAA;SAC3D;aAAM;YACL,YAAY,CAAC,KAAK,CAAC,qBAAqB,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAA;SAClE;QAED,MAAM,uBAAuB,GAAG,MAAM,YAAY;aAC/C,MAAM,CAAC;YACN,6BAA6B;YAC7B,qCAAqC;YACrC,gCAAgC;YAChC,oCAAoC;YACpC,kDAAkD;YAClD,sDAAsD;YACtD,oCAAoC;SACrC,CAAC;aACD,SAAS,EAAE,CAAA;QAEd,OAAO;YACL,GAAG,uBAAuB;YAC1B,aAAa,EAAE,uBAAuB,CAAC,aAAa,KAAK,CAAC;SAChC,CAAA;IAC9B,CAAC,EACD,gCAAgC,EAChC,aAAa,CACd,CAAA;AACH,CAAC,CAAA"}
@@ -1,5 +1,5 @@
1
1
  import { Trip } from '../entities';
2
- import { ReportPagination } from './common';
2
+ import { BaseSelectQueryParams, ReportPagination } from './common';
3
3
  import { TripCompletionStatus, TripType } from './enums';
4
4
  export declare const requiredCreateTripParamsAttributes: string[];
5
5
  export interface CreateTripParams {
@@ -75,9 +75,10 @@ export interface GetTripsResult {
75
75
  totalCount: number;
76
76
  }
77
77
  export declare const requiredGetUserTripConfigurationParamsAttributes: string[];
78
- export interface GetUserTripConfigurationParams {
78
+ export interface GetUserTripConfigurationParams extends BaseSelectQueryParams {
79
79
  filters: {
80
80
  imei: string;
81
+ clientId?: number;
81
82
  };
82
83
  }
83
84
  export interface DeviceTripConfiguration {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@spytecgps/nova-orm",
3
- "version": "1.0.70",
3
+ "version": "1.0.71",
4
4
  "description": "ORM with PlanetScale",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",