@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.
- package/dist/entities/latestPosition.js.map +1 -1
- package/dist/entities/position.js.map +1 -1
- package/dist/index.js +1 -1
- package/dist/novaDataSource.d.ts +5 -3
- package/dist/novaDataSource.js +35 -6
- package/dist/novaDataSource.js.map +1 -1
- package/dist/repositories/baseRepository.d.ts +2 -1
- package/dist/repositories/baseRepository.js +3 -1
- package/dist/repositories/baseRepository.js.map +1 -1
- package/dist/repositories/positions/createPosition.js +2 -0
- package/dist/repositories/positions/createPosition.js.map +1 -1
- package/dist/repositories/positions/getPositionsReportByClient.js +5 -1
- package/dist/repositories/positions/getPositionsReportByClient.js.map +1 -1
- package/dist/repositories/positions/index.js +3 -3
- package/dist/repositories/positions/index.js.map +1 -1
- package/dist/repositories/positions/mapping/mapToPositionReport.d.ts +5 -0
- package/dist/repositories/positions/mapping/mapToPositionReport.js +21 -0
- package/dist/repositories/positions/mapping/mapToPositionReport.js.map +1 -0
- package/dist/repositories/users/getUserData.js +5 -5
- package/dist/repositories/users/getUserData.js.map +1 -1
- package/dist/repositories/users/getUsers.js +7 -2
- package/dist/repositories/users/getUsers.js.map +1 -1
- package/dist/types/common.d.ts +5 -0
- package/dist/types/position.d.ts +2 -0
- package/dist/types/user.d.ts +3 -2
- package/package.json +1 -1
package/dist/novaDataSource.d.ts
CHANGED
|
@@ -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
|
-
|
|
71
|
+
createQueryRunnerFromParams(params: BaseParams): QueryRunner;
|
|
72
|
+
safeQuery<T>(queryBuilderHandler: queryBuilderHandler<T>, tag?: string, queryRunner?: QueryRunner): Promise<T>;
|
|
71
73
|
}
|
package/dist/novaDataSource.js
CHANGED
|
@@ -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
|
-
|
|
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
|
-
|
|
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":"AAAA,OAAO,EACL,UAAU,GAQX,MAAM,SAAS,CAAA;AAGhB,OAAO,EAAE,QAAQ,EAAE,MAAM,GAAG,CAAA;AAC5B,OAAO,KAAK,WAAW,MAAM,eAAe,CAAA;
|
|
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;
|
|
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":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAIzC,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAA;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAE7D,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,EACjC,cAA8B,EAC9B,MAA4B,EAC5B,MAAc,EACK,EAAE;IACrB,IAAI,CAAC,MAAM,EAAE,SAAS,IAAI,CAAC,MAAM,EAAE,UAAU,IAAI,CAAC,MAAM,EAAE,QAAQ,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE;QACnF,OAAO,IAAI,CAAA;KACZ;IAED,IAAI;QACF,MAAM,cAAc,CAAC,OAAO,EAAE,CAAA;QAC9B,MAAM,mBAAmB,GAAG,cAAc,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAA;QAElE,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAA;QACtB,MAAM,WAAW,GAAa;YAC5B,EAAE,EAAE,MAAM,CAAC,EAAE;YACb,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,GAAG,EAAE,MAAM,CAAC,GAAG;YACf,GAAG,EAAE,MAAM,CAAC,GAAG;YACf,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,GAAG;YAClC,SAAS,EAAE,wBAAwB,CAAC,MAAM,CAAC,SAAS,CAAC;YACrD,iBAAiB,EAAE,MAAM,CAAC,iBAAiB;YAC3C,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,yBAAyB,EAAE,MAAM,CAAC,yBAAyB;YAC3D,oBAAoB,EAAE,MAAM,CAAC,oBAAoB;
|
|
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":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;
|
|
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":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAQrD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAClD,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAClE,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAA;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAA;AAEzE,MAAM,OAAO,kBAAmB,SAAQ,cAAc;IACpD;;;;;;;;;;;;;;;;;OAiBG;IACH,KAAK,CAAC,cAAc,CAAC,MAA4B;QAC/C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,8DAA8D,CAAC,CAAA;QAEzF,MAAM,cAAc,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,oBAAoB,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;QAEjF,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,cAAc,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;QAExE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,6CAA6C,CAAC,CAAA;QAExE,OAAO,MAAM,CAAA;IACf,CAAC;IAED;;;;;;;;;;;;;;;;;;OAkBG;IACH,KAAK,CAAC,eAAe,CAAC,MAA8B;QAClD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,8DAA8D,CAAC,CAAA;QAEzF,MAAM,cAAc,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,oBAAoB,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;QAEjF,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,cAAc,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;QAEzE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,6CAA6C,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/repositories/positions/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -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
|
-
|
|
9
|
-
|
|
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
|
|
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":"
|
|
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
|
-
|
|
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":"
|
|
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"}
|
package/dist/types/common.d.ts
CHANGED
package/dist/types/position.d.ts
CHANGED
package/dist/types/user.d.ts
CHANGED
|
@@ -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
|
};
|