@spytecgps/nova-orm 1.0.101 → 1.0.104
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/alertBeta.d.ts +26 -0
- package/dist/entities/alertBeta.js +135 -0
- package/dist/entities/alertBeta.js.map +1 -0
- package/dist/entities/firmwareUpgradeTask.js +2 -0
- package/dist/entities/firmwareUpgradeTask.js.map +1 -1
- package/dist/entities/index.d.ts +2 -1
- package/dist/entities/index.js +2 -1
- package/dist/entities/index.js.map +1 -1
- package/dist/entities/userDataDeletionRequest.js +2 -1
- package/dist/entities/userDataDeletionRequest.js.map +1 -1
- package/dist/index.js +1 -1
- package/dist/repositories/alerts/createAlert.d.ts +2 -2
- package/dist/repositories/alerts/createAlert.js +5 -5
- package/dist/repositories/alerts/createAlert.js.map +1 -1
- package/dist/repositories/alerts/createRepository.d.ts +4 -0
- package/dist/repositories/alerts/createRepository.js +8 -0
- package/dist/repositories/alerts/createRepository.js.map +1 -0
- package/dist/repositories/alerts/index.js +2 -2
- package/dist/repositories/alerts/index.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/getBatteryReportForDevice.d.ts +4 -0
- package/dist/repositories/positions/getBatteryReportForDevice.js +47 -0
- package/dist/repositories/positions/getBatteryReportForDevice.js.map +1 -0
- package/dist/repositories/positions/index.d.ts +2 -1
- package/dist/repositories/positions/index.js +8 -0
- package/dist/repositories/positions/index.js.map +1 -1
- package/dist/types/position.d.ts +9 -1
- package/package.json +1 -1
|
@@ -2,5 +2,5 @@ import { Alert } from '../../entities';
|
|
|
2
2
|
import { NovaDataSource } from '../../novaDataSource';
|
|
3
3
|
import { CreateAlertParams } from '../../types/alert';
|
|
4
4
|
import { Logger } from '../../types/logger';
|
|
5
|
-
export declare const createAlert: (novaDataSource: NovaDataSource, params: CreateAlertParams, logger: Logger) => Promise<Alert>;
|
|
6
|
-
export declare const createAlerts: (novaDataSource: NovaDataSource, params: CreateAlertParams[], logger: Logger) => Promise<Alert[]>;
|
|
5
|
+
export declare const createAlert: (novaDataSource: NovaDataSource, params: CreateAlertParams, logger: Logger, useBeta?: boolean) => Promise<Alert>;
|
|
6
|
+
export declare const createAlerts: (novaDataSource: NovaDataSource, params: CreateAlertParams[], logger: Logger, useBeta?: boolean) => Promise<Alert[]>;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { Alert } from '../../entities';
|
|
2
1
|
import { uuidStringToBinaryBuffer } from '../../utils/uuidHelpers';
|
|
3
|
-
|
|
2
|
+
import { createRepository } from './createRepository';
|
|
3
|
+
export const createAlert = async (novaDataSource, params, logger, useBeta = false) => {
|
|
4
4
|
if (!params?.clientId ||
|
|
5
5
|
params.clientId === 0 ||
|
|
6
6
|
!params?.alertTypeId ||
|
|
@@ -12,7 +12,7 @@ export const createAlert = async (novaDataSource, params, logger) => {
|
|
|
12
12
|
}
|
|
13
13
|
try {
|
|
14
14
|
await novaDataSource.connect();
|
|
15
|
-
const alertRepository = novaDataSource
|
|
15
|
+
const alertRepository = createRepository(novaDataSource, useBeta);
|
|
16
16
|
const now = new Date();
|
|
17
17
|
const newAlert = {
|
|
18
18
|
id: params.id,
|
|
@@ -44,10 +44,10 @@ export const createAlert = async (novaDataSource, params, logger) => {
|
|
|
44
44
|
await novaDataSource.disconnect();
|
|
45
45
|
}
|
|
46
46
|
};
|
|
47
|
-
export const createAlerts = async (novaDataSource, params, logger) => {
|
|
47
|
+
export const createAlerts = async (novaDataSource, params, logger, useBeta = false) => {
|
|
48
48
|
try {
|
|
49
49
|
await novaDataSource.connect();
|
|
50
|
-
const alertRepository = novaDataSource
|
|
50
|
+
const alertRepository = createRepository(novaDataSource, useBeta);
|
|
51
51
|
const alerts = [];
|
|
52
52
|
params.forEach(param => {
|
|
53
53
|
if (!param?.clientId ||
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createAlert.js","sourceRoot":"","sources":["../../../src/repositories/alerts/createAlert.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"createAlert.js","sourceRoot":"","sources":["../../../src/repositories/alerts/createAlert.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Alert, AlertBeta } from '../../entities';
|
|
2
|
+
export const createRepository = (novaDataSource, useBeta = false) => {
|
|
3
|
+
const alertRepository = useBeta
|
|
4
|
+
? novaDataSource.getRepository(AlertBeta)
|
|
5
|
+
: novaDataSource.getRepository(Alert);
|
|
6
|
+
return alertRepository;
|
|
7
|
+
};
|
|
8
|
+
//# sourceMappingURL=createRepository.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createRepository.js","sourceRoot":"","sources":["../../../src/repositories/alerts/createRepository.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAEjD,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC9B,cAA8B,EAC9B,OAAO,GAAG,KAAK,EACgB,EAAE;IACjC,MAAM,eAAe,GAAG,OAAO;QAC7B,CAAC,CAAC,cAAc,CAAC,aAAa,CAAC,SAAS,CAAC;QACzC,CAAC,CAAC,cAAc,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;IAEvC,OAAO,eAAe,CAAA;AACxB,CAAC,CAAA"}
|
|
@@ -29,7 +29,7 @@ export class AlertRepository extends BaseRepository {
|
|
|
29
29
|
async createAlert(params) {
|
|
30
30
|
this.logger.trace(params, `AlertRepository::createAlert started with params`);
|
|
31
31
|
const novaDataSource = new NovaDataSource(this.novaDataSourceConfig, this.logger, this.replicaNovaDataSourceConfig);
|
|
32
|
-
const result = await createAlert(novaDataSource, params, this.logger);
|
|
32
|
+
const result = await createAlert(novaDataSource, params, this.logger, this.useBeta);
|
|
33
33
|
this.logger.trace(result, 'AlertRepository::createAlert result');
|
|
34
34
|
return result;
|
|
35
35
|
}
|
|
@@ -58,7 +58,7 @@ export class AlertRepository extends BaseRepository {
|
|
|
58
58
|
async createAlerts(params) {
|
|
59
59
|
this.logger.trace(params, `AlertRepository::createAlerts started with params`);
|
|
60
60
|
const novaDataSource = new NovaDataSource(this.novaDataSourceConfig, this.logger, this.replicaNovaDataSourceConfig);
|
|
61
|
-
const result = await createAlerts(novaDataSource, params, this.logger);
|
|
61
|
+
const result = await createAlerts(novaDataSource, params, this.logger, this.useBeta);
|
|
62
62
|
this.logger.trace(result, 'AlertRepository::createAlerts result');
|
|
63
63
|
return result;
|
|
64
64
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/repositories/alerts/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAOrD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAClD,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AACzD,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAA;AACnE,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAA;AAE/D,MAAM,OAAO,eAAgB,SAAQ,cAAc;IACjD;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,KAAK,CAAC,WAAW,CAAC,MAAyB;QACzC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,kDAAkD,CAAC,CAAA;QAE7E,MAAM,cAAc,GAAG,IAAI,cAAc,CACvC,IAAI,CAAC,oBAAoB,EACzB,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,2BAA2B,CACjC,CAAA;QAED,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,cAAc,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/repositories/alerts/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAOrD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAClD,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AACzD,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAA;AACnE,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAA;AAE/D,MAAM,OAAO,eAAgB,SAAQ,cAAc;IACjD;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,KAAK,CAAC,WAAW,CAAC,MAAyB;QACzC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,kDAAkD,CAAC,CAAA;QAE7E,MAAM,cAAc,GAAG,IAAI,cAAc,CACvC,IAAI,CAAC,oBAAoB,EACzB,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,2BAA2B,CACjC,CAAA;QAED,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,cAAc,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAA;QAEnF,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,qCAAqC,CAAC,CAAA;QAEhE,OAAO,MAAM,CAAA;IACf,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,KAAK,CAAC,YAAY,CAAC,MAA2B;QAC5C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,mDAAmD,CAAC,CAAA;QAC9E,MAAM,cAAc,GAAG,IAAI,cAAc,CACvC,IAAI,CAAC,oBAAoB,EACzB,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,2BAA2B,CACjC,CAAA;QAED,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,cAAc,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAA;QAEpF,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,sCAAsC,CAAC,CAAA;QAEjE,OAAO,MAAM,CAAA;IACf,CAAC;IAED;;;;;;;;;;;;;OAaG;IACH,KAAK,CAAC,qBAAqB,CAAC,MAAkC;QAC5D,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,8DAA8D,CAAC,CAAA;QAEzF,MAAM,cAAc,GAAG,IAAI,cAAc,CACvC,IAAI,CAAC,oBAAoB,EACzB,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,2BAA2B,CACjC,CAAA;QAED,MAAM,MAAM,GAAG,MAAM,qBAAqB,CAAC,cAAc,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;QAE/E,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,iDAAiD,CAAC,CAAA;QAE5E,OAAO,MAAM,CAAA;IACf,CAAC;IAED;;;;;;;;;;OAUG;IACH,KAAK,CAAC,uBAAuB,CAC3B,MAAsC;QAEtC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,8DAA8D,CAAC,CAAA;QAEzF,MAAM,cAAc,GAAG,IAAI,cAAc,CACvC,IAAI,CAAC,oBAAoB,EACzB,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,2BAA2B,CACjC,CAAA;QAED,MAAM,MAAM,GAAG,MAAM,uBAAuB,CAAC,cAAc,EAAE,MAAM,CAAC,CAAA;QAEpE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,iDAAiD,CAAC,CAAA;QAE5E,OAAO,MAAM,CAAA;IACf,CAAC;CACF"}
|
|
@@ -4,5 +4,6 @@ export declare class BaseRepository {
|
|
|
4
4
|
protected readonly novaDataSourceConfig: NovaDataSourceConfig;
|
|
5
5
|
protected readonly replicaNovaDataSourceConfig?: NovaDataSourceConfig;
|
|
6
6
|
protected readonly logger: Logger;
|
|
7
|
-
|
|
7
|
+
protected readonly useBeta: boolean;
|
|
8
|
+
constructor(config: NovaDataSourceConfig, logger: Logger, replicaConfig?: NovaDataSourceConfig, useBeta?: boolean);
|
|
8
9
|
}
|
|
@@ -3,10 +3,12 @@ export class BaseRepository {
|
|
|
3
3
|
novaDataSourceConfig;
|
|
4
4
|
replicaNovaDataSourceConfig;
|
|
5
5
|
logger;
|
|
6
|
-
|
|
6
|
+
useBeta;
|
|
7
|
+
constructor(config, logger, replicaConfig, useBeta = false) {
|
|
7
8
|
this.novaDataSourceConfig = config;
|
|
8
9
|
this.replicaNovaDataSourceConfig = replicaConfig;
|
|
9
10
|
this.logger = logger ?? new ConsoleLogger();
|
|
11
|
+
this.useBeta = useBeta;
|
|
10
12
|
}
|
|
11
13
|
}
|
|
12
14
|
//# sourceMappingURL=baseRepository.js.map
|
|
@@ -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,2BAA2B,CAAuB;IAClD,MAAM,CAAQ;
|
|
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;IACd,OAAO,CAAS;IAEnC,YACE,MAA4B,EAC5B,MAAc,EACd,aAAoC,EACpC,OAAO,GAAG,KAAK;QAEf,IAAI,CAAC,oBAAoB,GAAG,MAAM,CAAA;QAClC,IAAI,CAAC,2BAA2B,GAAG,aAAa,CAAA;QAChD,IAAI,CAAC,MAAM,GAAG,MAAM,IAAI,IAAI,aAAa,EAAE,CAAA;QAC3C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;IACxB,CAAC;CACF"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { NovaDataSource } from '../../novaDataSource';
|
|
2
|
+
import { Logger } from '../../types/logger';
|
|
3
|
+
import { GetBatteryReportForDeviceParams } from '../../types/position';
|
|
4
|
+
export declare const getBatteryReportForDevice: (novaDataSource: NovaDataSource, params: GetBatteryReportForDeviceParams, logger: Logger) => Promise<any[]>;
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { Position } from '../../entities/position';
|
|
2
|
+
export const getBatteryReportForDevice = async (novaDataSource, params, logger) => {
|
|
3
|
+
if (!(params.filters.clientId && params.filters.imei)) {
|
|
4
|
+
return [];
|
|
5
|
+
}
|
|
6
|
+
// Force the query to run on master or slave
|
|
7
|
+
const dbQueryRunner = novaDataSource.createQueryRunnerFromParams(params);
|
|
8
|
+
try {
|
|
9
|
+
await novaDataSource.connect();
|
|
10
|
+
const positionsRepository = novaDataSource.getRepository(Position);
|
|
11
|
+
let positionsQuery = positionsRepository
|
|
12
|
+
.createQueryBuilder('p')
|
|
13
|
+
.setQueryRunner(dbQueryRunner)
|
|
14
|
+
.select('DATE(p.actualDate)', 'actualDate')
|
|
15
|
+
.addSelect('MAX(p.batteryPercentage)', 'batteryPercentage')
|
|
16
|
+
.where('p.clientId = :clientId', { clientId: params.filters.clientId })
|
|
17
|
+
.andWhere('p.imei = :imei', { imei: params.filters.imei });
|
|
18
|
+
if (params.filters.startDate) {
|
|
19
|
+
positionsQuery = positionsQuery.andWhere('p.actualDate >= :startDate', {
|
|
20
|
+
startDate: params.filters.startDate,
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
if (params.filters.endDate) {
|
|
24
|
+
positionsQuery = positionsQuery.andWhere('p.actualDate <= :endDate', {
|
|
25
|
+
endDate: params.filters.endDate,
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
const pageSize = params?.pagingOptions?.pageSize ?? 100;
|
|
29
|
+
const pageIndex = params?.pagingOptions?.pageIndex ?? 1;
|
|
30
|
+
positionsQuery = positionsQuery
|
|
31
|
+
.groupBy('DATE(p.actualDate)')
|
|
32
|
+
.orderBy('DATE(p.actualDate)', 'DESC')
|
|
33
|
+
.limit(pageSize)
|
|
34
|
+
.offset(pageSize * (pageIndex - 1));
|
|
35
|
+
const results = await positionsQuery.getRawMany();
|
|
36
|
+
return results;
|
|
37
|
+
}
|
|
38
|
+
catch (error) {
|
|
39
|
+
logger.error({ error }, 'PositionsRepository::GetPositionsReportByClientId error');
|
|
40
|
+
throw error;
|
|
41
|
+
}
|
|
42
|
+
finally {
|
|
43
|
+
await dbQueryRunner.release();
|
|
44
|
+
await novaDataSource.disconnect();
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
//# sourceMappingURL=getBatteryReportForDevice.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getBatteryReportForDevice.js","sourceRoot":"","sources":["../../../src/repositories/positions/getBatteryReportForDevice.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AAKlD,MAAM,CAAC,MAAM,yBAAyB,GAAG,KAAK,EAC5C,cAA8B,EAC9B,MAAuC,EACvC,MAAc,EACd,EAAE;IACF,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;QACrD,OAAO,EAAE,CAAA;KACV;IAED,4CAA4C;IAC5C,MAAM,aAAa,GAAG,cAAc,CAAC,2BAA2B,CAAC,MAAM,CAAC,CAAA;IAExE,IAAI;QACF,MAAM,cAAc,CAAC,OAAO,EAAE,CAAA;QAE9B,MAAM,mBAAmB,GAAG,cAAc,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAA;QAElE,IAAI,cAAc,GAAG,mBAAmB;aACrC,kBAAkB,CAAC,GAAG,CAAC;aACvB,cAAc,CAAC,aAAa,CAAC;aAC7B,MAAM,CAAC,oBAAoB,EAAE,YAAY,CAAC;aAC1C,SAAS,CAAC,0BAA0B,EAAE,mBAAmB,CAAC;aAC1D,KAAK,CAAC,wBAAwB,EAAE,EAAE,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;aACtE,QAAQ,CAAC,gBAAgB,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAA;QAE5D,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE;YAC5B,cAAc,GAAG,cAAc,CAAC,QAAQ,CAAC,4BAA4B,EAAE;gBACrE,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,SAAS;aACpC,CAAC,CAAA;SACH;QACD,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE;YAC1B,cAAc,GAAG,cAAc,CAAC,QAAQ,CAAC,0BAA0B,EAAE;gBACnE,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,OAAO;aAChC,CAAC,CAAA;SACH;QAED,MAAM,QAAQ,GAAG,MAAM,EAAE,aAAa,EAAE,QAAQ,IAAI,GAAG,CAAA;QACvD,MAAM,SAAS,GAAG,MAAM,EAAE,aAAa,EAAE,SAAS,IAAI,CAAC,CAAA;QAEvD,cAAc,GAAG,cAAc;aAC5B,OAAO,CAAC,oBAAoB,CAAC;aAC7B,OAAO,CAAC,oBAAoB,EAAE,MAAM,CAAC;aACrC,KAAK,CAAC,QAAQ,CAAC;aACf,MAAM,CAAC,QAAQ,GAAG,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,CAAA;QAErC,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,UAAU,EAAE,CAAA;QAEjD,OAAO,OAAO,CAAA;KACf;IAAC,OAAO,KAAK,EAAE;QACd,MAAM,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,EAAE,yDAAyD,CAAC,CAAA;QAClF,MAAM,KAAK,CAAA;KACZ;YAAS;QACR,MAAM,aAAa,CAAC,OAAO,EAAE,CAAA;QAC7B,MAAM,cAAc,CAAC,UAAU,EAAE,CAAA;KAClC;AACH,CAAC,CAAA"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { LatestPosition, Position } from '../../entities';
|
|
2
|
-
import { CreatePositionParams, GetLatestPositionByImeiParams, GetPositionsByImeiParams, GetPositionsReportByClientParams, PositionReport } from '../../types/position';
|
|
2
|
+
import { CreatePositionParams, GetBatteryReportForDeviceParams, GetLatestPositionByImeiParams, GetPositionsByImeiParams, GetPositionsReportByClientParams, PositionReport } from '../../types/position';
|
|
3
3
|
import { BaseRepository } from '../baseRepository';
|
|
4
4
|
export declare class PositionRepository extends BaseRepository {
|
|
5
5
|
/**
|
|
@@ -65,4 +65,5 @@ export declare class PositionRepository extends BaseRepository {
|
|
|
65
65
|
*/
|
|
66
66
|
getPositionsReportByClient(params: GetPositionsReportByClientParams): Promise<PositionReport[]>;
|
|
67
67
|
getLatestPositionByImei(params: GetLatestPositionByImeiParams): Promise<LatestPosition>;
|
|
68
|
+
getBatteryReportForDevice(params: GetBatteryReportForDeviceParams): Promise<any[]>;
|
|
68
69
|
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { NovaDataSource } from '../../novaDataSource';
|
|
2
2
|
import { BaseRepository } from '../baseRepository';
|
|
3
3
|
import { createPosition, upsertPositions } from './createPosition';
|
|
4
|
+
import { getBatteryReportForDevice } from './getBatteryReportForDevice';
|
|
4
5
|
import { getLatestPositionByImei } from './getLatestPositionByImei';
|
|
5
6
|
import { getPositionsByImei } from './getPositionsByImei';
|
|
6
7
|
import { getPositionsReportByClient } from './getPositionsReportByClient';
|
|
@@ -98,5 +99,12 @@ export class PositionRepository extends BaseRepository {
|
|
|
98
99
|
this.logger.trace(result, 'PositionsRepository::getLatestPositionByImei result');
|
|
99
100
|
return result;
|
|
100
101
|
}
|
|
102
|
+
async getBatteryReportForDevice(params) {
|
|
103
|
+
this.logger.trace(params, `PositionsRepository::getBatteryReportForDevice started with params`);
|
|
104
|
+
const novaDataSource = new NovaDataSource(this.novaDataSourceConfig, this.logger, this.replicaNovaDataSourceConfig);
|
|
105
|
+
const result = await getBatteryReportForDevice(novaDataSource, params, this.logger);
|
|
106
|
+
this.logger.trace(result, 'PositionsRepository::getLatestPositionByImei result');
|
|
107
|
+
return result;
|
|
108
|
+
}
|
|
101
109
|
}
|
|
102
110
|
//# sourceMappingURL=index.js.map
|
|
@@ -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;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/repositories/positions/index.ts"],"names":[],"mappings":"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"}
|
package/dist/types/position.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { BaseSelectQueryParams, ReportPagination } from './common';
|
|
1
|
+
import { BaseSelectQueryParams, OptionalReportPagination, ReportPagination } from './common';
|
|
2
2
|
export interface CreatePositionParams {
|
|
3
3
|
id?: number;
|
|
4
4
|
imei: string;
|
|
@@ -61,3 +61,11 @@ export interface GetLatestPositionByImeiParams extends BaseSelectQueryParams {
|
|
|
61
61
|
imei: string;
|
|
62
62
|
};
|
|
63
63
|
}
|
|
64
|
+
export interface GetBatteryReportForDeviceParams extends OptionalReportPagination {
|
|
65
|
+
filters: {
|
|
66
|
+
imei: string;
|
|
67
|
+
clientId: number;
|
|
68
|
+
startDate?: Date;
|
|
69
|
+
endDate?: Date;
|
|
70
|
+
};
|
|
71
|
+
}
|