@spytecgps/nova-orm 1.0.36 → 1.0.38

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.
@@ -0,0 +1,4 @@
1
+ import { NovaDataSource } from '../../novaDataSource';
2
+ import { GetDeviceStatusesCountParams } from '../../types/deviceStatus';
3
+ import { Logger } from '../../types/logger';
4
+ export declare const getDeviceStatusesCount: (novaDataSource: NovaDataSource, params: GetDeviceStatusesCountParams, logger: Logger) => Promise<number>;
@@ -0,0 +1,37 @@
1
+ import { Device } from '../../entities';
2
+ import { DeviceStatus } from '../../entities/deviceStatus';
3
+ export const getDeviceStatusesCount = async (novaDataSource, params, logger) => {
4
+ if (!params?.filters?.imeiList?.length && !params?.filters?.clientId) {
5
+ logger.warn({ params }, 'DeviceStatusRepository::getDeviceStatusesCount missing required parameters');
6
+ return 0;
7
+ }
8
+ return novaDataSource.safeQuery(async (dataSource) => {
9
+ const deviceStatusRepository = dataSource.getRepository(DeviceStatus);
10
+ let queryBuilder = deviceStatusRepository.createQueryBuilder('deviceStatus');
11
+ if (params.filters.imeiList?.length) {
12
+ queryBuilder = queryBuilder.andWhere('deviceStatus.imei IN (:...imeis)', {
13
+ imeis: params.filters.imeiList,
14
+ });
15
+ }
16
+ if (params.filters.clientId) {
17
+ queryBuilder = queryBuilder.andWhere('deviceStatus.clientId = :clientId', {
18
+ clientId: params.filters.clientId,
19
+ });
20
+ }
21
+ if (params.filters.minSendTime) {
22
+ queryBuilder = queryBuilder.andWhere('deviceStatus.sendTime > :sendTimeMin', {
23
+ sendTimeMin: params.filters.minSendTime,
24
+ });
25
+ }
26
+ if (params.filters.deviceStatus) {
27
+ queryBuilder = queryBuilder
28
+ .leftJoin(Device, 'device', 'deviceStatus.imei = device.imei and deviceStatus.clientId = device.clientId')
29
+ .andWhere('device.status = :status', {
30
+ status: params.filters.deviceStatus,
31
+ });
32
+ }
33
+ const result = await queryBuilder.getCount();
34
+ return result;
35
+ }, 'DeviceStatusRepository::getDeviceStatusesCount');
36
+ };
37
+ //# sourceMappingURL=getDeviceStatusesCount.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getDeviceStatusesCount.js","sourceRoot":"","sources":["../../../src/repositories/deviceStatus/getDeviceStatusesCount.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAA;AAK1D,MAAM,CAAC,MAAM,sBAAsB,GAAG,KAAK,EACzC,cAA8B,EAC9B,MAAoC,EACpC,MAAc,EACG,EAAE;IACnB,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE;QACpE,MAAM,CAAC,IAAI,CACT,EAAE,MAAM,EAAE,EACV,4EAA4E,CAC7E,CAAA;QACD,OAAO,CAAC,CAAA;KACT;IAED,OAAO,cAAc,CAAC,SAAS,CAAC,KAAK,EAAE,UAA0B,EAAmB,EAAE;QACpF,MAAM,sBAAsB,GAAG,UAAU,CAAC,aAAa,CAAC,YAAY,CAAC,CAAA;QAErE,IAAI,YAAY,GAAG,sBAAsB,CAAC,kBAAkB,CAAC,cAAc,CAAC,CAAA;QAE5E,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE;YACnC,YAAY,GAAG,YAAY,CAAC,QAAQ,CAAC,kCAAkC,EAAE;gBACvE,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,QAAQ;aAC/B,CAAC,CAAA;SACH;QAED,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE;YAC3B,YAAY,GAAG,YAAY,CAAC,QAAQ,CAAC,mCAAmC,EAAE;gBACxE,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,QAAQ;aAClC,CAAC,CAAA;SACH;QAED,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE;YAC9B,YAAY,GAAG,YAAY,CAAC,QAAQ,CAAC,sCAAsC,EAAE;gBAC3E,WAAW,EAAE,MAAM,CAAC,OAAO,CAAC,WAAW;aACxC,CAAC,CAAA;SACH;QAED,IAAI,MAAM,CAAC,OAAO,CAAC,YAAY,EAAE;YAC/B,YAAY,GAAG,YAAY;iBACxB,QAAQ,CACP,MAAM,EACN,QAAQ,EACR,6EAA6E,CAC9E;iBACA,QAAQ,CAAC,yBAAyB,EAAE;gBACnC,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,YAAY;aACpC,CAAC,CAAA;SACL;QAED,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,QAAQ,EAAE,CAAA;QAE5C,OAAO,MAAM,CAAA;IACf,CAAC,EAAE,gDAAgD,CAAC,CAAA;AACtD,CAAC,CAAA"}
@@ -1,5 +1,5 @@
1
1
  import { DeviceStatus } from '../../entities/deviceStatus';
2
- import { GetDeviceStatusesParams, UpsertDeviceStatusesParams } from '../../types/deviceStatus';
2
+ import { GetDeviceStatusesCountParams, GetDeviceStatusesParams, UpsertDeviceStatusesParams } from '../../types/deviceStatus';
3
3
  import { BaseRepository } from './../baseRepository';
4
4
  export declare class DeviceStatusRepository extends BaseRepository {
5
5
  /**
@@ -18,6 +18,15 @@ export declare class DeviceStatusRepository extends BaseRepository {
18
18
  * - projectionOptions.clientDeviceSettingsProperties: The client device settings properties to get
19
19
  */
20
20
  getDeviceStatuses(params: GetDeviceStatusesParams): Promise<DeviceStatus[]>;
21
+ /**
22
+ * Get total count of device statuses based on the filters
23
+ * @param {GetDeviceStatusesCountParams} params containing information to get device statuses count
24
+ * - filters.deviceStatus: The device status
25
+ * - filters.clientId: The client id
26
+ * - filters.imeiList: The imei list
27
+ * - filters.minSendTime: The min send time
28
+ */
29
+ getDeviceStatusesCount(params: GetDeviceStatusesCountParams): Promise<number>;
21
30
  /**
22
31
  * Upsert the device status information
23
32
  * @param {UpsertDeviceStatusesParams} params containing device statuses information
@@ -1,6 +1,7 @@
1
1
  import { NovaDataSource } from '../../novaDataSource';
2
2
  import { BaseRepository } from './../baseRepository';
3
3
  import { getDeviceStatuses } from './getDeviceStatuses';
4
+ import { getDeviceStatusesCount } from './getDeviceStatusesCount';
4
5
  import { upsertDeviceStatuses } from './upsertDeviceStatuses';
5
6
  export class DeviceStatusRepository extends BaseRepository {
6
7
  /**
@@ -25,6 +26,21 @@ export class DeviceStatusRepository extends BaseRepository {
25
26
  this.logger.trace(result, 'DeviceStatusRepository::getDeviceStatus result');
26
27
  return result;
27
28
  }
29
+ /**
30
+ * Get total count of device statuses based on the filters
31
+ * @param {GetDeviceStatusesCountParams} params containing information to get device statuses count
32
+ * - filters.deviceStatus: The device status
33
+ * - filters.clientId: The client id
34
+ * - filters.imeiList: The imei list
35
+ * - filters.minSendTime: The min send time
36
+ */
37
+ async getDeviceStatusesCount(params) {
38
+ this.logger.trace(params, 'DeviceStatusRepository::getDeviceStatusesCount started with params');
39
+ const novaDataSource = new NovaDataSource(this.novaDataSourceConfig, this.logger);
40
+ const result = await getDeviceStatusesCount(novaDataSource, params, this.logger);
41
+ this.logger.trace({ result }, 'DeviceStatusRepository::getDeviceStatusesCount result');
42
+ return result;
43
+ }
28
44
  /**
29
45
  * Upsert the device status information
30
46
  * @param {UpsertDeviceStatusesParams} params containing device statuses information
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/repositories/deviceStatus/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAErD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAE7D,MAAM,OAAO,sBAAuB,SAAQ,cAAc;IACxD;;;;;;;;;;;;;;OAcG;IACH,KAAK,CAAC,iBAAiB,CAAC,MAA+B;QACrD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,6DAA6D,CAAC,CAAA;QAExF,MAAM,cAAc,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,oBAAoB,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;QAEjF,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,cAAc,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;QAE3E,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,gDAAgD,CAAC,CAAA;QAE3E,OAAO,MAAM,CAAA;IACf,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,oBAAoB,CAAC,MAAkC;QAC3D,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,gEAAgE,CAAC,CAAA;QAE3F,MAAM,cAAc,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,oBAAoB,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;QAEjF,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC,cAAc,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;QAE9E,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,EAAE,mDAAmD,CAAC,CAAA;QAElF,OAAO,MAAM,CAAA;IACf,CAAC;CACF"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/repositories/deviceStatus/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAMrD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AACvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAA;AACjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAE7D,MAAM,OAAO,sBAAuB,SAAQ,cAAc;IACxD;;;;;;;;;;;;;;OAcG;IACH,KAAK,CAAC,iBAAiB,CAAC,MAA+B;QACrD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,6DAA6D,CAAC,CAAA;QAExF,MAAM,cAAc,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,oBAAoB,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;QAEjF,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,cAAc,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;QAE3E,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,gDAAgD,CAAC,CAAA;QAE3E,OAAO,MAAM,CAAA;IACf,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,sBAAsB,CAAC,MAAoC;QAC/D,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,oEAAoE,CAAC,CAAA;QAE/F,MAAM,cAAc,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,oBAAoB,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;QAEjF,MAAM,MAAM,GAAG,MAAM,sBAAsB,CAAC,cAAc,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;QAEhF,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,EAAE,uDAAuD,CAAC,CAAA;QAEtF,OAAO,MAAM,CAAA;IACf,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,oBAAoB,CAAC,MAAkC;QAC3D,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,gEAAgE,CAAC,CAAA;QAE3F,MAAM,cAAc,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,oBAAoB,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;QAEjF,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC,cAAc,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;QAE9E,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,EAAE,mDAAmD,CAAC,CAAA;QAElF,OAAO,MAAM,CAAA;IACf,CAAC;CACF"}
@@ -5,12 +5,12 @@ import { uuidStringToBinaryBuffer } from '../../utils/uuidHelpers';
5
5
  export const getLiveLinkData = async (novaDataSource, params, logger, deviceStatusRepository) => {
6
6
  if (!params?.filters?.id || !params?.filters?.clientId) {
7
7
  logger.warn({ params }, 'LiveLinksRepository::getLiveLinkData - missing required parameters');
8
- return { trackersWithLocation: [] };
8
+ return { trackersWithStatus: [] };
9
9
  }
10
10
  const binaryBuffer = uuidStringToBinaryBuffer(params?.filters?.id);
11
11
  if (!binaryBuffer?.length) {
12
12
  logger.warn({ params }, 'LiveLinksRepository::getLiveLinkData - id should be a valid UUID');
13
- return { trackersWithLocation: [] };
13
+ return { trackersWithStatus: [] };
14
14
  }
15
15
  return novaDataSource.safeQuery(async (dataSource) => {
16
16
  const liveLinksRepository = dataSource.getRepository(LiveLink);
@@ -20,10 +20,10 @@ export const getLiveLinkData = async (novaDataSource, params, logger, deviceStat
20
20
  .andWhere('clientId = :clientId', { clientId: params.filters.clientId });
21
21
  const liveLink = await queryBuilder.getOne();
22
22
  if (!liveLink) {
23
- return { trackersWithLocation: [] };
23
+ return { trackersWithStatus: [] };
24
24
  }
25
25
  const result = {
26
- trackersWithLocation: [],
26
+ trackersWithStatus: [],
27
27
  };
28
28
  const devices = liveLink.devices;
29
29
  if (liveLink.deviceAccess === 'limited' && !devices?.length) {
@@ -58,7 +58,7 @@ export const getLiveLinkData = async (novaDataSource, params, logger, deviceStat
58
58
  offset: params.pagingOptions?.pageIndex ?? 0,
59
59
  },
60
60
  });
61
- result.trackersWithLocation.push(...deviceStatuses.map(deviceStatus => {
61
+ result.trackersWithStatus.push(...deviceStatuses.map(deviceStatus => {
62
62
  const data = deviceStatus?.data;
63
63
  return {
64
64
  imei: deviceStatus.imei,
@@ -67,17 +67,19 @@ export const getLiveLinkData = async (novaDataSource, params, logger, deviceStat
67
67
  deviceTypeId: deviceStatus.device?.deviceTypeId,
68
68
  color: deviceStatus.device?.color,
69
69
  icon: deviceStatus.device?.icon,
70
- latitude: tryParseFloat(data?.latitude) ?? undefined,
71
- longitude: tryParseFloat(data?.longitude) ?? undefined,
72
- address: data?.address ?? undefined,
73
- sendTime: tryParseDate(data?.sendTime) ?? undefined,
74
- odoMileage: tryParseFloat(data?.odoMileage) ?? undefined,
75
- batteryPercentage: tryParseFloat(data?.batteryPercentage) ?? undefined,
76
- speed: tryParseFloat(data?.speed) ?? undefined,
77
- hoursOfOperation: tryParseFloat(data?.hoursOfOperation) ?? undefined,
78
- batteryVoltage: tryParseFloat(data?.batteryVoltage) ?? undefined,
79
- externalPowerVoltage: tryParseFloat(data?.externalPowerVoltage) ?? undefined,
80
- reportType: tryParseFloat(data?.reportType) ?? undefined,
70
+ status: {
71
+ latitude: tryParseFloat(data?.latitude) ?? undefined,
72
+ longitude: tryParseFloat(data?.longitude) ?? undefined,
73
+ address: data?.address ?? undefined,
74
+ sendTime: tryParseDate(data?.sendTime) ?? undefined,
75
+ odoMileage: tryParseFloat(data?.odoMileage) ?? undefined,
76
+ batteryPercentage: tryParseFloat(data?.batteryPercentage) ?? undefined,
77
+ speed: tryParseFloat(data?.speed) ?? undefined,
78
+ hoursOfOperation: tryParseFloat(data?.hoursOfOperation) ?? undefined,
79
+ batteryVoltage: tryParseFloat(data?.batteryVoltage) ?? undefined,
80
+ externalPowerVoltage: tryParseFloat(data?.externalPowerVoltage) ?? undefined,
81
+ reportType: tryParseFloat(data?.reportType) ?? undefined,
82
+ },
81
83
  };
82
84
  }));
83
85
  return result;
@@ -1 +1 @@
1
- {"version":3,"file":"getLiveLinkData.js","sourceRoot":"","sources":["../../../src/repositories/liveLinks/getLiveLinkData.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"getLiveLinkData.js","sourceRoot":"","sources":["../../../src/repositories/liveLinks/getLiveLinkData.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import { NovaDataSource } from '../../novaDataSource';
2
+ import { GetLiveLinkDataCountParams } from '../../types/liveLinks';
3
+ import { Logger } from '../../types/logger';
4
+ import { DeviceStatusRepository } from '../deviceStatus';
5
+ export declare const getLiveLinkDataCount: (novaDataSource: NovaDataSource, params: GetLiveLinkDataCountParams, logger: Logger, deviceStatusRepository: DeviceStatusRepository) => Promise<number>;
@@ -0,0 +1,39 @@
1
+ import { LiveLink } from '../../entities/liveLink';
2
+ import { Enums } from '../../types';
3
+ import { uuidStringToBinaryBuffer } from '../../utils/uuidHelpers';
4
+ export const getLiveLinkDataCount = async (novaDataSource, params, logger, deviceStatusRepository) => {
5
+ if (!params?.filters?.id || !params?.filters?.clientId) {
6
+ logger.warn({ params }, 'LiveLinksRepository::getLiveLinkDataCount - missing required parameters');
7
+ return 0;
8
+ }
9
+ const binaryBuffer = uuidStringToBinaryBuffer(params?.filters?.id);
10
+ if (!binaryBuffer?.length) {
11
+ logger.warn({ params }, 'LiveLinksRepository::getLiveLinkDataCount - id should be a valid UUID');
12
+ return 0;
13
+ }
14
+ return novaDataSource.safeQuery(async (dataSource) => {
15
+ const liveLinksRepository = dataSource.getRepository(LiveLink);
16
+ const queryBuilder = liveLinksRepository
17
+ .createQueryBuilder('liveLink')
18
+ .andWhere('id = :id', { id: binaryBuffer })
19
+ .andWhere('clientId = :clientId', { clientId: params.filters.clientId });
20
+ const liveLink = await queryBuilder.getOne();
21
+ if (!liveLink) {
22
+ return 0;
23
+ }
24
+ const devices = liveLink.devices;
25
+ if (liveLink.deviceAccess === 'limited' && !devices?.length) {
26
+ return 0;
27
+ }
28
+ const filters = liveLink.deviceAccess === 'limited' ? { imeiList: devices } : { clientId: liveLink.clientId };
29
+ const result = await deviceStatusRepository.getDeviceStatusesCount({
30
+ filters: {
31
+ ...filters,
32
+ minSendTime: params.filters.minSendTime,
33
+ deviceStatus: Enums.DeviceStatus.Active,
34
+ },
35
+ });
36
+ return result;
37
+ }, 'LiveLinksRepository::getLiveLinkDataCount');
38
+ };
39
+ //# sourceMappingURL=getLiveLinkDataCount.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getLiveLinkDataCount.js","sourceRoot":"","sources":["../../../src/repositories/liveLinks/getLiveLinkDataCount.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AAElD,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AAGnC,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAA;AAGlE,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,EACvC,cAA8B,EAC9B,MAAkC,EAClC,MAAc,EACd,sBAA8C,EAC7B,EAAE;IACnB,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE;QACtD,MAAM,CAAC,IAAI,CACT,EAAE,MAAM,EAAE,EACV,yEAAyE,CAC1E,CAAA;QACD,OAAO,CAAC,CAAA;KACT;IAED,MAAM,YAAY,GAAG,wBAAwB,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,CAAC,CAAA;IAElE,IAAI,CAAC,YAAY,EAAE,MAAM,EAAE;QACzB,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,uEAAuE,CAAC,CAAA;QAChG,OAAO,CAAC,CAAA;KACT;IAED,OAAO,cAAc,CAAC,SAAS,CAAC,KAAK,EAAE,UAA0B,EAAmB,EAAE;QACpF,MAAM,mBAAmB,GAAG,UAAU,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAA;QAE9D,MAAM,YAAY,GAAG,mBAAmB;aACrC,kBAAkB,CAAC,UAAU,CAAC;aAC9B,QAAQ,CAAC,UAAU,EAAE,EAAE,EAAE,EAAE,YAAY,EAAE,CAAC;aAC1C,QAAQ,CAAC,sBAAsB,EAAE,EAAE,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAA;QAE1E,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,MAAM,EAAE,CAAA;QAE5C,IAAI,CAAC,QAAQ,EAAE;YACb,OAAO,CAAC,CAAA;SACT;QAED,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAmB,CAAA;QAE5C,IAAI,QAAQ,CAAC,YAAY,KAAK,SAAS,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE;YAC3D,OAAO,CAAC,CAAA;SACT;QAED,MAAM,OAAO,GACX,QAAQ,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE,CAAA;QAE/F,MAAM,MAAM,GAAG,MAAM,sBAAsB,CAAC,sBAAsB,CAAC;YACjE,OAAO,EAAE;gBACP,GAAG,OAAO;gBACV,WAAW,EAAE,MAAM,CAAC,OAAO,CAAC,WAAW;gBACvC,YAAY,EAAE,KAAK,CAAC,YAAY,CAAC,MAAM;aACxC;SACF,CAAC,CAAA;QAEF,OAAO,MAAM,CAAA;IACf,CAAC,EAAE,2CAA2C,CAAC,CAAA;AACjD,CAAC,CAAA"}
@@ -1,5 +1,5 @@
1
1
  import { LiveLink } from '../../entities';
2
- import { CreateLiveLinkParams, GetLiveLinkDataParams, GetLiveLinksCountParams, GetLiveLinksParams, LiveLinkData, UpdateLiveLinkParams } from '../../types/liveLinks';
2
+ import { CreateLiveLinkParams, GetLiveLinkDataCountParams, GetLiveLinkDataParams, GetLiveLinksCountParams, GetLiveLinksParams, LiveLinkData, UpdateLiveLinkParams } from '../../types/liveLinks';
3
3
  import { BaseRepository } from '../baseRepository';
4
4
  export declare class LiveLinksRepository extends BaseRepository {
5
5
  /**
@@ -51,5 +51,24 @@ export declare class LiveLinksRepository extends BaseRepository {
51
51
  * @returns The live links count
52
52
  */
53
53
  getLiveLinksCount(params: GetLiveLinksCountParams): Promise<number>;
54
+ /**
55
+ * Get trackers with location data associated with a live link
56
+ * @param params - The parameters to get live link data
57
+ * filters.id: the liveLink id, required. It should be a valid UUID.
58
+ * filters.clientId: the client id, required
59
+ * filters.minSendTime: the min send time, optional
60
+ * pagingOptions.pageSize: the page size, optional. Default: 100
61
+ * pagingOptions.pageIndex: the page index, optional. Default: 0
62
+ * @returns The live link data
63
+ */
54
64
  getLiveLinkData(params: GetLiveLinkDataParams): Promise<LiveLinkData>;
65
+ /**
66
+ * Get total count of trackers with location data associated with a live link
67
+ * @param params - The parameters to get live link data count
68
+ * filters.id: the liveLink id, required. It should be a valid UUID.
69
+ * filters.clientId: the client id, required
70
+ * filters.minSendTime: the min send time, optional
71
+ * @returns The live link data count
72
+ */
73
+ getLiveLinkDataCount(params: GetLiveLinkDataCountParams): Promise<number>;
55
74
  }
@@ -3,6 +3,7 @@ import { BaseRepository } from '../baseRepository';
3
3
  import { DeviceStatusRepository } from '../deviceStatus';
4
4
  import { createLiveLink } from './createLiveLink';
5
5
  import { getLiveLinkData } from './getLiveLinkData';
6
+ import { getLiveLinkDataCount } from './getLiveLinkDataCount';
6
7
  import { getLiveLinks } from './getLiveLinks';
7
8
  import { getLiveLinksCount } from './getLiveLinksCount';
8
9
  import { updateLiveLink } from './updateLiveLink';
@@ -80,6 +81,16 @@ export class LiveLinksRepository extends BaseRepository {
80
81
  this.logger.trace({ result }, 'LiveLinksRepository::getLiveLinksCount result');
81
82
  return result;
82
83
  }
84
+ /**
85
+ * Get trackers with location data associated with a live link
86
+ * @param params - The parameters to get live link data
87
+ * filters.id: the liveLink id, required. It should be a valid UUID.
88
+ * filters.clientId: the client id, required
89
+ * filters.minSendTime: the min send time, optional
90
+ * pagingOptions.pageSize: the page size, optional. Default: 100
91
+ * pagingOptions.pageIndex: the page index, optional. Default: 0
92
+ * @returns The live link data
93
+ */
83
94
  async getLiveLinkData(params) {
84
95
  this.logger.trace(params, 'LiveLinksRepository::getLiveLinkData started with params');
85
96
  const novaDataSource = new NovaDataSource(this.novaDataSourceConfig, this.logger);
@@ -88,5 +99,21 @@ export class LiveLinksRepository extends BaseRepository {
88
99
  this.logger.trace(result, 'LiveLinksRepository::getLiveLinkData result');
89
100
  return result;
90
101
  }
102
+ /**
103
+ * Get total count of trackers with location data associated with a live link
104
+ * @param params - The parameters to get live link data count
105
+ * filters.id: the liveLink id, required. It should be a valid UUID.
106
+ * filters.clientId: the client id, required
107
+ * filters.minSendTime: the min send time, optional
108
+ * @returns The live link data count
109
+ */
110
+ async getLiveLinkDataCount(params) {
111
+ this.logger.trace(params, 'LiveLinksRepository::getLiveLinkDataCount started with params');
112
+ const novaDataSource = new NovaDataSource(this.novaDataSourceConfig, this.logger);
113
+ const deviceStatusRepository = new DeviceStatusRepository(this.novaDataSourceConfig, this.logger);
114
+ const result = await getLiveLinkDataCount(novaDataSource, params, this.logger, deviceStatusRepository);
115
+ this.logger.trace({ result }, 'LiveLinksRepository::getLiveLinkDataCount result');
116
+ return result;
117
+ }
91
118
  }
92
119
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/repositories/liveLinks/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/repositories/liveLinks/index.ts"],"names":[],"mappings":"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"}
@@ -27,6 +27,14 @@ export interface GetDeviceStatusesParams {
27
27
  offset?: number;
28
28
  };
29
29
  }
30
+ export interface GetDeviceStatusesCountParams {
31
+ filters: {
32
+ imeiList?: string[];
33
+ clientId?: number;
34
+ minSendTime?: Date;
35
+ deviceStatus?: Enums.DeviceStatus;
36
+ };
37
+ }
30
38
  export interface UpsertDeviceStatusesParams {
31
39
  items: DeviceStatusEntity[];
32
40
  }
@@ -51,25 +51,34 @@ export interface GetLiveLinkDataParams extends OptionalReportPagination {
51
51
  minSendTime?: Date;
52
52
  };
53
53
  }
54
- export interface TrackerWithLocation {
54
+ export interface GetLiveLinkDataCountParams {
55
+ filters: {
56
+ id: string;
57
+ clientId: number;
58
+ minSendTime?: Date;
59
+ };
60
+ }
61
+ export interface TrackerWithStatus {
55
62
  imei: string;
56
63
  name: string;
57
64
  description?: string;
58
65
  deviceTypeId: number;
59
66
  color?: string;
60
67
  icon?: string;
61
- latitude?: number;
62
- longitude?: number;
63
- address?: string;
64
- sendTime?: Date;
65
- odoMileage?: number;
66
- batteryPercentage?: number;
67
- speed?: number;
68
- hoursOfOperation?: number;
69
- batteryVoltage?: number;
70
- externalPowerVoltage?: number;
71
- reportType?: number;
68
+ status: {
69
+ latitude?: number;
70
+ longitude?: number;
71
+ address?: string;
72
+ sendTime?: Date;
73
+ odoMileage?: number;
74
+ batteryPercentage?: number;
75
+ speed?: number;
76
+ hoursOfOperation?: number;
77
+ batteryVoltage?: number;
78
+ externalPowerVoltage?: number;
79
+ reportType?: number;
80
+ };
72
81
  }
73
82
  export interface LiveLinkData {
74
- trackersWithLocation: TrackerWithLocation[];
83
+ trackersWithStatus: TrackerWithStatus[];
75
84
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@spytecgps/nova-orm",
3
- "version": "1.0.36",
3
+ "version": "1.0.38",
4
4
  "description": "ORM with PlanetScale",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",