@spytecgps/nova-orm 1.0.31 → 1.0.32

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.
Files changed (47) hide show
  1. package/dist/entities/index.d.ts +2 -1
  2. package/dist/entities/index.js +2 -1
  3. package/dist/entities/index.js.map +1 -1
  4. package/dist/entities/liveLink.d.ts +15 -0
  5. package/dist/entities/liveLink.js +82 -0
  6. package/dist/entities/liveLink.js.map +1 -0
  7. package/dist/index.js +1 -1
  8. package/dist/repositories/devices/getDevices.js +3 -3
  9. package/dist/repositories/devices/getDevices.js.map +1 -1
  10. package/dist/repositories/index.d.ts +2 -1
  11. package/dist/repositories/index.js +2 -1
  12. package/dist/repositories/index.js.map +1 -1
  13. package/dist/repositories/liveLinks/createLiveLink.d.ts +5 -0
  14. package/dist/repositories/liveLinks/createLiveLink.js +37 -0
  15. package/dist/repositories/liveLinks/createLiveLink.js.map +1 -0
  16. package/dist/repositories/liveLinks/getLiveLinkData.d.ts +5 -0
  17. package/dist/repositories/liveLinks/getLiveLinkData.js +85 -0
  18. package/dist/repositories/liveLinks/getLiveLinkData.js.map +1 -0
  19. package/dist/repositories/liveLinks/getLiveLinks.d.ts +5 -0
  20. package/dist/repositories/liveLinks/getLiveLinks.js +34 -0
  21. package/dist/repositories/liveLinks/getLiveLinks.js.map +1 -0
  22. package/dist/repositories/liveLinks/index.d.ts +48 -0
  23. package/dist/repositories/liveLinks/index.js +78 -0
  24. package/dist/repositories/liveLinks/index.js.map +1 -0
  25. package/dist/repositories/liveLinks/updateLiveLink.d.ts +4 -0
  26. package/dist/repositories/liveLinks/updateLiveLink.js +36 -0
  27. package/dist/repositories/liveLinks/updateLiveLink.js.map +1 -0
  28. package/dist/repositories/userConfigurations/getCustomUserAlertConfiguration.d.ts +1 -0
  29. package/dist/repositories/userConfigurations/getCustomUserAlertConfiguration.js +26 -22
  30. package/dist/repositories/userConfigurations/getCustomUserAlertConfiguration.js.map +1 -1
  31. package/dist/repositories/userConfigurations/getCustomUserAlertConfigurationCount.d.ts +4 -0
  32. package/dist/repositories/userConfigurations/getCustomUserAlertConfigurationCount.js +21 -0
  33. package/dist/repositories/userConfigurations/getCustomUserAlertConfigurationCount.js.map +1 -0
  34. package/dist/repositories/userConfigurations/index.d.ts +18 -6
  35. package/dist/repositories/userConfigurations/index.js +25 -6
  36. package/dist/repositories/userConfigurations/index.js.map +1 -1
  37. package/dist/types/devices.d.ts +1 -1
  38. package/dist/types/index.d.ts +2 -1
  39. package/dist/types/index.js +2 -1
  40. package/dist/types/index.js.map +1 -1
  41. package/dist/types/liveLinks.d.ts +67 -0
  42. package/dist/types/liveLinks.js +2 -0
  43. package/dist/types/liveLinks.js.map +1 -0
  44. package/dist/utils/parsingTools.d.ts +2 -0
  45. package/dist/utils/parsingTools.js +13 -0
  46. package/dist/utils/parsingTools.js.map +1 -0
  47. package/package.json +1 -1
@@ -30,14 +30,14 @@ export const getDevices = async (novaDataSource, params, logger) => {
30
30
  imeiList: params.filters.imeiList,
31
31
  });
32
32
  }
33
- if (params.projectionOptions.withDeviceType) {
33
+ if (params.projectionOptions?.withDeviceType) {
34
34
  queryBuilder = queryBuilder.leftJoinAndSelect('device.deviceType', 'deviceType');
35
35
  }
36
- if (params.projectionOptions.withIccidCarrier) {
36
+ if (params.projectionOptions?.withIccidCarrier) {
37
37
  queryBuilder = queryBuilder.leftJoinAndMapOne('device.iccidCarrier', ImeiIccidCarrier, 'iccidCarrier', 'device.imei = iccidCarrier.imei');
38
38
  queryBuilder = queryBuilder.leftJoinAndMapOne('iccidCarrier.serviceProvider', ServiceProvider, 'serviceProvider', 'iccidCarrier.carrier = serviceProvider.id');
39
39
  }
40
- if (params.projectionOptions.withClientDeviceSettings) {
40
+ if (params.projectionOptions?.withClientDeviceSettings) {
41
41
  queryBuilder = queryBuilder.leftJoinAndMapOne('device.clientDeviceSetting', ClientDeviceSetting, 'clientDeviceSetting', 'device.imei = clientDeviceSetting.imei and device.clientId = clientDeviceSetting.clientId');
42
42
  }
43
43
  if (params?.sortOptions?.sortField) {
@@ -1 +1 @@
1
- {"version":3,"file":"getDevices.js","sourceRoot":"","sources":["../../../src/repositories/devices/getDevices.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"getDevices.js","sourceRoot":"","sources":["../../../src/repositories/devices/getDevices.ts"],"names":[],"mappings":"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"}
@@ -16,6 +16,7 @@ import { DevicePairingsRepository } from './devicePairings';
16
16
  import { DevicesRepository } from './devices';
17
17
  import { DeviceStatusRepository } from './deviceStatus';
18
18
  import { FirmwaresRepository } from './firmwares';
19
+ import { LiveLinksRepository } from './liveLinks';
19
20
  import { NotificationRecipientsRepository } from './notificationRecipients';
20
21
  import { PositionRepository } from './positions';
21
22
  import { SecurityRepository } from './security';
@@ -30,4 +31,4 @@ import { UserInvitationsRepository } from './userInvitations';
30
31
  import { UserRatingRequestsRepository } from './userRatingRequests';
31
32
  import { UserRegistrationAttemptsRepository } from './userRegistrationAttempts';
32
33
  import { UsersRepository } from './users';
33
- export { AcumaticaRepository, AempTokenRepository, AlertRepository, AlertTypesRepository, AppFeaturesRepository, AssetCategoriesRepository, BillingRepository, BlacklistRepository, BLEMeshConfigurationRepository, BoundariesRepository, ClientsRepository, CountriesRepository, DeactivationsRepository, DeviceStatusRepository, DeviceBehaviorsRepository, DevicePairingsRepository, DevicesRepository, FirmwaresRepository, NotificationRecipientsRepository, PositionRepository, SecurityRepository, TasksRepository, TripRepository, UserActivationsRepository, UserAppFeedbackRepository, UserAppIncidentsRepository, UserConfigurationsRepository, UserDataDeletionRequestsRepository, UserInvitationsRepository, UserRatingRequestsRepository, UserRegistrationAttemptsRepository, UsersRepository, };
34
+ export { AcumaticaRepository, AempTokenRepository, AlertRepository, AlertTypesRepository, AppFeaturesRepository, AssetCategoriesRepository, BillingRepository, BlacklistRepository, BLEMeshConfigurationRepository, BoundariesRepository, ClientsRepository, CountriesRepository, DeactivationsRepository, DeviceStatusRepository, DeviceBehaviorsRepository, DevicePairingsRepository, DevicesRepository, FirmwaresRepository, LiveLinksRepository, NotificationRecipientsRepository, PositionRepository, SecurityRepository, TasksRepository, TripRepository, UserActivationsRepository, UserAppFeedbackRepository, UserAppIncidentsRepository, UserConfigurationsRepository, UserDataDeletionRequestsRepository, UserInvitationsRepository, UserRatingRequestsRepository, UserRegistrationAttemptsRepository, UsersRepository, };
@@ -16,6 +16,7 @@ import { DevicePairingsRepository } from './devicePairings';
16
16
  import { DevicesRepository } from './devices';
17
17
  import { DeviceStatusRepository } from './deviceStatus';
18
18
  import { FirmwaresRepository } from './firmwares';
19
+ import { LiveLinksRepository } from './liveLinks';
19
20
  import { NotificationRecipientsRepository } from './notificationRecipients';
20
21
  import { PositionRepository } from './positions';
21
22
  import { SecurityRepository } from './security';
@@ -30,5 +31,5 @@ import { UserInvitationsRepository } from './userInvitations';
30
31
  import { UserRatingRequestsRepository } from './userRatingRequests';
31
32
  import { UserRegistrationAttemptsRepository } from './userRegistrationAttempts';
32
33
  import { UsersRepository } from './users';
33
- export { AcumaticaRepository, AempTokenRepository, AlertRepository, AlertTypesRepository, AppFeaturesRepository, AssetCategoriesRepository, BillingRepository, BlacklistRepository, BLEMeshConfigurationRepository, BoundariesRepository, ClientsRepository, CountriesRepository, DeactivationsRepository, DeviceStatusRepository, DeviceBehaviorsRepository, DevicePairingsRepository, DevicesRepository, FirmwaresRepository, NotificationRecipientsRepository, PositionRepository, SecurityRepository, TasksRepository, TripRepository, UserActivationsRepository, UserAppFeedbackRepository, UserAppIncidentsRepository, UserConfigurationsRepository, UserDataDeletionRequestsRepository, UserInvitationsRepository, UserRatingRequestsRepository, UserRegistrationAttemptsRepository, UsersRepository, };
34
+ export { AcumaticaRepository, AempTokenRepository, AlertRepository, AlertTypesRepository, AppFeaturesRepository, AssetCategoriesRepository, BillingRepository, BlacklistRepository, BLEMeshConfigurationRepository, BoundariesRepository, ClientsRepository, CountriesRepository, DeactivationsRepository, DeviceStatusRepository, DeviceBehaviorsRepository, DevicePairingsRepository, DevicesRepository, FirmwaresRepository, LiveLinksRepository, NotificationRecipientsRepository, PositionRepository, SecurityRepository, TasksRepository, TripRepository, UserActivationsRepository, UserAppFeedbackRepository, UserAppIncidentsRepository, UserConfigurationsRepository, UserDataDeletionRequestsRepository, UserInvitationsRepository, UserRatingRequestsRepository, UserRegistrationAttemptsRepository, UsersRepository, };
34
35
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/repositories/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAC1C,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAA;AACnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAA;AACrD,OAAO,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAA;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAA;AAC7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AACjD,OAAO,EAAE,8BAA8B,EAAE,MAAM,wBAAwB,CAAA;AACvE,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAA;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAA;AAC7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AACjD,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAA;AACzD,OAAO,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAA;AAC7D,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAA;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAA;AAC7C,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAA;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AACjD,OAAO,EAAE,gCAAgC,EAAE,MAAM,0BAA0B,CAAA;AAC3E,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AACxC,OAAO,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAA;AAC7D,OAAO,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAA;AAC7D,OAAO,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAA;AAC/D,OAAO,EAAE,4BAA4B,EAAE,MAAM,sBAAsB,CAAA;AACnE,OAAO,EAAE,kCAAkC,EAAE,MAAM,4BAA4B,CAAA;AAC/E,OAAO,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAA;AAC7D,OAAO,EAAE,4BAA4B,EAAE,MAAM,sBAAsB,CAAA;AACnE,OAAO,EAAE,kCAAkC,EAAE,MAAM,4BAA4B,CAAA;AAC/E,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAEzC,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,eAAe,EACf,oBAAoB,EACpB,qBAAqB,EACrB,yBAAyB,EACzB,iBAAiB,EACjB,mBAAmB,EACnB,8BAA8B,EAC9B,oBAAoB,EACpB,iBAAiB,EACjB,mBAAmB,EACnB,uBAAuB,EACvB,sBAAsB,EACtB,yBAAyB,EACzB,wBAAwB,EACxB,iBAAiB,EACjB,mBAAmB,EACnB,gCAAgC,EAChC,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EACf,cAAc,EACd,yBAAyB,EACzB,yBAAyB,EACzB,0BAA0B,EAC1B,4BAA4B,EAC5B,kCAAkC,EAClC,yBAAyB,EACzB,4BAA4B,EAC5B,kCAAkC,EAClC,eAAe,GAChB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/repositories/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAC1C,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAA;AACnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAA;AACrD,OAAO,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAA;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAA;AAC7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AACjD,OAAO,EAAE,8BAA8B,EAAE,MAAM,wBAAwB,CAAA;AACvE,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAA;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAA;AAC7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AACjD,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAA;AACzD,OAAO,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAA;AAC7D,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAA;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAA;AAC7C,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAA;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AACjD,OAAO,EAAE,gCAAgC,EAAE,MAAM,0BAA0B,CAAA;AAC3E,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AACxC,OAAO,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAA;AAC7D,OAAO,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAA;AAC7D,OAAO,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAA;AAC/D,OAAO,EAAE,4BAA4B,EAAE,MAAM,sBAAsB,CAAA;AACnE,OAAO,EAAE,kCAAkC,EAAE,MAAM,4BAA4B,CAAA;AAC/E,OAAO,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAA;AAC7D,OAAO,EAAE,4BAA4B,EAAE,MAAM,sBAAsB,CAAA;AACnE,OAAO,EAAE,kCAAkC,EAAE,MAAM,4BAA4B,CAAA;AAC/E,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAEzC,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,eAAe,EACf,oBAAoB,EACpB,qBAAqB,EACrB,yBAAyB,EACzB,iBAAiB,EACjB,mBAAmB,EACnB,8BAA8B,EAC9B,oBAAoB,EACpB,iBAAiB,EACjB,mBAAmB,EACnB,uBAAuB,EACvB,sBAAsB,EACtB,yBAAyB,EACzB,wBAAwB,EACxB,iBAAiB,EACjB,mBAAmB,EACnB,mBAAmB,EACnB,gCAAgC,EAChC,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EACf,cAAc,EACd,yBAAyB,EACzB,yBAAyB,EACzB,0BAA0B,EAC1B,4BAA4B,EAC5B,kCAAkC,EAClC,yBAAyB,EACzB,4BAA4B,EAC5B,kCAAkC,EAClC,eAAe,GAChB,CAAA"}
@@ -0,0 +1,5 @@
1
+ import { LiveLink } from '../../entities';
2
+ import { NovaDataSource } from '../../novaDataSource';
3
+ import { CreateLiveLinkParams } from '../../types/liveLinks';
4
+ import { Logger } from '../../types/logger';
5
+ export declare const createLiveLink: (novaDataSource: NovaDataSource, params: CreateLiveLinkParams, logger: Logger) => Promise<LiveLink>;
@@ -0,0 +1,37 @@
1
+ import { LiveLink } from '../../entities';
2
+ import { uuidStringToBinaryBuffer } from '../../utils/uuidHelpers';
3
+ export const createLiveLink = async (novaDataSource, params, logger) => {
4
+ if (!params?.id || !params?.name || !params?.clientId || !params?.deviceAccess) {
5
+ logger.warn({ params }, 'LiveLinksRepository::createLiveLink - missing required parameters');
6
+ return null;
7
+ }
8
+ if (params.deviceAccess === 'limited' && !params.devices) {
9
+ logger.warn({ params }, 'LiveLinksRepository::createLiveLink - devices should be provided if deviceAccess is limited');
10
+ return null;
11
+ }
12
+ const binaryBuffer = uuidStringToBinaryBuffer(params?.id);
13
+ if (!binaryBuffer?.length) {
14
+ logger.warn({ params }, 'LiveLinksRepository::createLiveLink - id should be a valid UUID');
15
+ return null;
16
+ }
17
+ return novaDataSource.safeQuery(async (dataSource) => {
18
+ const lifeLinkssRepository = dataSource.getRepository(LiveLink);
19
+ const now = new Date();
20
+ const newLiveLink = {
21
+ id: binaryBuffer,
22
+ name: params.name,
23
+ clientId: params.clientId,
24
+ startDate: params.startDate,
25
+ endDate: params.endDate,
26
+ deviceAccess: params.deviceAccess,
27
+ devices: params.devices,
28
+ status: 'active',
29
+ createdAt: now,
30
+ modifiedAt: now,
31
+ createdBy: params.createdBy,
32
+ modifiedBy: params.createdBy,
33
+ };
34
+ return await lifeLinkssRepository.save(newLiveLink);
35
+ }, 'LiveLinksRepository::createLiveLink');
36
+ };
37
+ //# sourceMappingURL=createLiveLink.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createLiveLink.js","sourceRoot":"","sources":["../../../src/repositories/liveLinks/createLiveLink.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAIzC,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAA;AAElE,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,EACjC,cAA8B,EAC9B,MAA4B,EAC5B,MAAc,EACK,EAAE;IACrB,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,QAAQ,IAAI,CAAC,MAAM,EAAE,YAAY,EAAE;QAC9E,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,mEAAmE,CAAC,CAAA;QAC5F,OAAO,IAAI,CAAA;KACZ;IAED,IAAI,MAAM,CAAC,YAAY,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;QACxD,MAAM,CAAC,IAAI,CACT,EAAE,MAAM,EAAE,EACV,6FAA6F,CAC9F,CAAA;QACD,OAAO,IAAI,CAAA;KACZ;IAED,MAAM,YAAY,GAAG,wBAAwB,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;IAEzD,IAAI,CAAC,YAAY,EAAE,MAAM,EAAE;QACzB,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,iEAAiE,CAAC,CAAA;QAC1F,OAAO,IAAI,CAAA;KACZ;IAED,OAAO,cAAc,CAAC,SAAS,CAAC,KAAK,EAAE,UAA0B,EAAqB,EAAE;QACtF,MAAM,oBAAoB,GAAG,UAAU,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAA;QAE/D,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAA;QAEtB,MAAM,WAAW,GAAG;YAClB,EAAE,EAAE,YAAY;YAChB,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,MAAM,EAAE,QAAQ;YAChB,SAAS,EAAE,GAAG;YACd,UAAU,EAAE,GAAG;YACf,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,UAAU,EAAE,MAAM,CAAC,SAAS;SAC7B,CAAA;QAED,OAAO,MAAM,oBAAoB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;IACrD,CAAC,EAAE,qCAAqC,CAAC,CAAA;AAC3C,CAAC,CAAA"}
@@ -0,0 +1,5 @@
1
+ import { NovaDataSource } from '../../novaDataSource';
2
+ import { GetLiveLinkDataParams, LiveLinkData } from '../../types/liveLinks';
3
+ import { Logger } from '../../types/logger';
4
+ import { DeviceStatusRepository } from '../deviceStatus';
5
+ export declare const getLiveLinkData: (novaDataSource: NovaDataSource, params: GetLiveLinkDataParams, logger: Logger, deviceStatusRepository: DeviceStatusRepository) => Promise<LiveLinkData>;
@@ -0,0 +1,85 @@
1
+ import { LiveLink } from '../../entities/liveLink';
2
+ import { Enums } from '../../types';
3
+ import { tryParseDate, tryParseFloat } from '../../utils/parsingTools';
4
+ import { uuidStringToBinaryBuffer } from '../../utils/uuidHelpers';
5
+ export const getLiveLinkData = async (novaDataSource, params, logger, deviceStatusRepository) => {
6
+ if (!params?.filters?.id) {
7
+ logger.warn({ params }, 'LiveLinksRepository::getLiveLinkData - missing required parameters');
8
+ return { trackersWithLocation: [] };
9
+ }
10
+ const binaryBuffer = uuidStringToBinaryBuffer(params?.filters?.id);
11
+ if (!binaryBuffer?.length) {
12
+ logger.warn({ params }, 'LiveLinksRepository::getLiveLinkData - id should be a valid UUID');
13
+ return { trackersWithLocation: [] };
14
+ }
15
+ return novaDataSource.safeQuery(async (dataSource) => {
16
+ const liveLinksRepository = dataSource.getRepository(LiveLink);
17
+ const queryBuilder = liveLinksRepository
18
+ .createQueryBuilder('liveLink')
19
+ .andWhere('id = :id', { id: binaryBuffer });
20
+ const liveLink = await queryBuilder.getOne();
21
+ if (!liveLink) {
22
+ return { trackersWithLocation: [] };
23
+ }
24
+ const result = {
25
+ trackersWithLocation: [],
26
+ };
27
+ const devices = liveLink.devices;
28
+ if (liveLink.deviceAccess === 'limited' && !devices?.length) {
29
+ return result;
30
+ }
31
+ const filters = liveLink.deviceAccess === 'limited' ? { imeiList: devices } : { clientId: liveLink.clientId };
32
+ const deviceStatuses = await deviceStatusRepository.getDeviceStatuses({
33
+ filters: {
34
+ ...filters,
35
+ minSendTime: params.filters.minSendTime,
36
+ deviceStatus: Enums.DeviceStatus.Active,
37
+ },
38
+ projectionOptions: {
39
+ withDevice: true,
40
+ deviceProperties: ['imei', 'name', 'description', 'deviceTypeId', 'color', 'icon'],
41
+ deviceStatusProperties: [
42
+ 'latitude',
43
+ 'longitude',
44
+ 'address',
45
+ 'sendTime',
46
+ 'odoMileage',
47
+ 'batteryPercentage',
48
+ 'speed',
49
+ 'hoursOfOperation',
50
+ 'batteryVoltage',
51
+ 'externalPowerVoltage',
52
+ 'reportType',
53
+ ],
54
+ },
55
+ pagingOptions: {
56
+ limit: params.pagingOptions?.pageSize ?? 100,
57
+ offset: params.pagingOptions?.pageIndex ?? 0,
58
+ },
59
+ });
60
+ result.trackersWithLocation.push(...deviceStatuses.map(deviceStatus => {
61
+ const data = deviceStatus?.data;
62
+ return {
63
+ imei: deviceStatus.imei,
64
+ name: deviceStatus.device?.name,
65
+ description: deviceStatus.device?.description,
66
+ deviceTypeId: deviceStatus.device?.deviceTypeId,
67
+ color: deviceStatus.device?.color,
68
+ icon: deviceStatus.device?.icon,
69
+ latitude: tryParseFloat(data?.latitude) ?? undefined,
70
+ longitude: tryParseFloat(data?.longitude) ?? undefined,
71
+ address: data?.address ?? undefined,
72
+ sendTime: tryParseDate(data?.sendTime) ?? undefined,
73
+ odoMileage: tryParseFloat(data?.odoMileage) ?? undefined,
74
+ batteryPercentage: tryParseFloat(data?.batteryPercentage) ?? undefined,
75
+ speed: tryParseFloat(data?.speed) ?? undefined,
76
+ hoursOfOperation: tryParseFloat(data?.hoursOfOperation) ?? undefined,
77
+ batteryVoltage: tryParseFloat(data?.batteryVoltage) ?? undefined,
78
+ externalPowerVoltage: tryParseFloat(data?.externalPowerVoltage) ?? undefined,
79
+ reportType: tryParseFloat(data?.reportType) ?? undefined,
80
+ };
81
+ }));
82
+ return result;
83
+ }, 'LiveLinksRepository::getLiveLinkData');
84
+ };
85
+ //# sourceMappingURL=getLiveLinkData.js.map
@@ -0,0 +1 @@
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 { LiveLink } from '../../entities/liveLink';
2
+ import { NovaDataSource } from '../../novaDataSource';
3
+ import { GetLiveLinksParams } from '../../types/liveLinks';
4
+ import { Logger } from '../../types/logger';
5
+ export declare const getLiveLinks: (novaDataSource: NovaDataSource, params: GetLiveLinksParams, logger: Logger) => Promise<LiveLink[]>;
@@ -0,0 +1,34 @@
1
+ import { LiveLink } from '../../entities/liveLink';
2
+ import { uuidStringToBinaryBuffer } from '../../utils/uuidHelpers';
3
+ export const getLiveLinks = async (novaDataSource, params, logger) => {
4
+ if (!params?.filters?.id && !params?.filters?.clientId) {
5
+ logger.warn({ params }, 'LiveLinksRepository::getLiveLinks - missing required parameters');
6
+ return [];
7
+ }
8
+ const binaryBuffer = uuidStringToBinaryBuffer(params?.filters?.id);
9
+ if (params?.filters?.id && !binaryBuffer?.length) {
10
+ logger.warn({ params }, 'LiveLinksRepository::getLiveLinks - id should be a valid UUID');
11
+ return [];
12
+ }
13
+ return novaDataSource.safeQuery(async (dataSource) => {
14
+ const liveLinksRepository = dataSource.getRepository(LiveLink);
15
+ let queryBuilder = liveLinksRepository.createQueryBuilder('liveLink');
16
+ if (params?.filters?.id) {
17
+ queryBuilder = queryBuilder.andWhere('id = :id', { id: binaryBuffer });
18
+ }
19
+ if (params?.filters?.clientId) {
20
+ queryBuilder = queryBuilder.andWhere('clientId = :clientId', {
21
+ clientId: params.filters.clientId,
22
+ });
23
+ }
24
+ const sortField = params.sortOptions?.sortField ?? 'createdAt';
25
+ const sortOrder = params.sortOptions?.sortOrder ?? 'DESC';
26
+ queryBuilder = queryBuilder.orderBy(`liveLink.${sortField}`, sortOrder);
27
+ const result = await queryBuilder
28
+ .limit(params.pagingOptions?.pageSize ?? 100)
29
+ .offset(params.pagingOptions?.pageIndex ?? 0)
30
+ .getMany();
31
+ return result;
32
+ }, 'LiveLinksRepository::getLiveLinks');
33
+ };
34
+ //# sourceMappingURL=getLiveLinks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getLiveLinks.js","sourceRoot":"","sources":["../../../src/repositories/liveLinks/getLiveLinks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AAIlD,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,EAAE,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE;QACtD,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,iEAAiE,CAAC,CAAA;QAC1F,OAAO,EAAE,CAAA;KACV;IAED,MAAM,YAAY,GAAG,wBAAwB,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,CAAC,CAAA;IAElE,IAAI,MAAM,EAAE,OAAO,EAAE,EAAE,IAAI,CAAC,YAAY,EAAE,MAAM,EAAE;QAChD,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,+DAA+D,CAAC,CAAA;QACxF,OAAO,EAAE,CAAA;KACV;IAED,OAAO,cAAc,CAAC,SAAS,CAAC,KAAK,EAAE,UAA0B,EAAuB,EAAE;QACxF,MAAM,mBAAmB,GAAG,UAAU,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAA;QAE9D,IAAI,YAAY,GAAG,mBAAmB,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAA;QAErE,IAAI,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE;YACvB,YAAY,GAAG,YAAY,CAAC,QAAQ,CAAC,UAAU,EAAE,EAAE,EAAE,EAAE,YAAY,EAAE,CAAC,CAAA;SACvE;QAED,IAAI,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE;YAC7B,YAAY,GAAG,YAAY,CAAC,QAAQ,CAAC,sBAAsB,EAAE;gBAC3D,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,QAAQ;aAClC,CAAC,CAAA;SACH;QAED,MAAM,SAAS,GAAG,MAAM,CAAC,WAAW,EAAE,SAAS,IAAI,WAAW,CAAA;QAC9D,MAAM,SAAS,GAAG,MAAM,CAAC,WAAW,EAAE,SAAS,IAAI,MAAM,CAAA;QAEzD,YAAY,GAAG,YAAY,CAAC,OAAO,CAAC,YAAY,SAAS,EAAE,EAAE,SAAS,CAAC,CAAA;QAEvE,MAAM,MAAM,GAAG,MAAM,YAAY;aAC9B,KAAK,CAAC,MAAM,CAAC,aAAa,EAAE,QAAQ,IAAI,GAAG,CAAC;aAC5C,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,SAAS,IAAI,CAAC,CAAC;aAC5C,OAAO,EAAE,CAAA;QAEZ,OAAO,MAAM,CAAA;IACf,CAAC,EAAE,mCAAmC,CAAC,CAAA;AACzC,CAAC,CAAA"}
@@ -0,0 +1,48 @@
1
+ import { LiveLink } from '../../entities';
2
+ import { CreateLiveLinkParams, GetLiveLinkDataParams, GetLiveLinksParams, LiveLinkData, UpdateLiveLinkParams } from '../../types/liveLinks';
3
+ import { BaseRepository } from '../baseRepository';
4
+ export declare class LiveLinksRepository extends BaseRepository {
5
+ /**
6
+ * Create a new live link
7
+ * @param params - The parameters to create a live link
8
+ * id: the liveLink id, required. It should be a valid UUID.
9
+ * name: the liveLink name, required
10
+ * clientId: the client id, required
11
+ * startDate: the start date, optional
12
+ * endDate: the end date, optional
13
+ * deviceAccess: the device access, required. Values: 'full', 'limited'
14
+ * devices: array of devices the liveLink have access to, required if deviceAccess is 'limited'
15
+ * createdBy: the user who created the live link, optional
16
+ * @returns The created live link
17
+ */
18
+ createLiveLink(params: CreateLiveLinkParams): Promise<LiveLink>;
19
+ /**
20
+ * Update a live link
21
+ * @param params - The parameters to update a live link
22
+ * filters.id: the liveLink id, required. It should be a valid UUID.
23
+ * At least one value must be provided:
24
+ * values.name: the liveLink name, optional
25
+ * values.status: the liveLink status, optional
26
+ * values.startDate: the start date, optional
27
+ * values.endDate: the end date, optional
28
+ * values.deviceAccess: the device access, optional. Values: 'full', 'limited'
29
+ * values.devices: array of devices the liveLink have access to, optional
30
+ * values.modifiedBy: the user who modified the live link, optional
31
+ * @returns True if the live link was updated
32
+ */
33
+ updateLiveLink(params: UpdateLiveLinkParams): Promise<boolean>;
34
+ /**
35
+ * Get live links
36
+ * @param params - The parameters to get live links
37
+ * One of the following filters is required:
38
+ * filters.id: the liveLink id, optional. It should be a valid UUID.
39
+ * filters.clientId: the client id, optional
40
+ * pagingOptions.pageSize: the page size, optional. Default: 100
41
+ * pagingOptions.pageIndex: the page index, optional. Default: 0
42
+ * sortOptions.sortField: the sort field, optional. Default: 'id'
43
+ * sortOptions.sortOrder: the sort order, optional. Default: 'DESC'
44
+ * @returns The live links
45
+ */
46
+ getLiveLinks(params: GetLiveLinksParams): Promise<LiveLink[]>;
47
+ getLiveLinkData(params: GetLiveLinkDataParams): Promise<LiveLinkData>;
48
+ }
@@ -0,0 +1,78 @@
1
+ import { NovaDataSource } from '../../novaDataSource';
2
+ import { BaseRepository } from '../baseRepository';
3
+ import { DeviceStatusRepository } from '../deviceStatus';
4
+ import { createLiveLink } from './createLiveLink';
5
+ import { getLiveLinkData } from './getLiveLinkData';
6
+ import { getLiveLinks } from './getLiveLinks';
7
+ import { updateLiveLink } from './updateLiveLink';
8
+ export class LiveLinksRepository extends BaseRepository {
9
+ /**
10
+ * Create a new live link
11
+ * @param params - The parameters to create a live link
12
+ * id: the liveLink id, required. It should be a valid UUID.
13
+ * name: the liveLink name, required
14
+ * clientId: the client id, required
15
+ * startDate: the start date, optional
16
+ * endDate: the end date, optional
17
+ * deviceAccess: the device access, required. Values: 'full', 'limited'
18
+ * devices: array of devices the liveLink have access to, required if deviceAccess is 'limited'
19
+ * createdBy: the user who created the live link, optional
20
+ * @returns The created live link
21
+ */
22
+ async createLiveLink(params) {
23
+ this.logger.trace(params, 'LiveLinksRepository::createLiveLink started with params');
24
+ const novaDataSource = new NovaDataSource(this.novaDataSourceConfig, this.logger);
25
+ const result = await createLiveLink(novaDataSource, params, this.logger);
26
+ this.logger.trace(result, 'LiveLinksRepository::createLiveLink result');
27
+ return result;
28
+ }
29
+ /**
30
+ * Update a live link
31
+ * @param params - The parameters to update a live link
32
+ * filters.id: the liveLink id, required. It should be a valid UUID.
33
+ * At least one value must be provided:
34
+ * values.name: the liveLink name, optional
35
+ * values.status: the liveLink status, optional
36
+ * values.startDate: the start date, optional
37
+ * values.endDate: the end date, optional
38
+ * values.deviceAccess: the device access, optional. Values: 'full', 'limited'
39
+ * values.devices: array of devices the liveLink have access to, optional
40
+ * values.modifiedBy: the user who modified the live link, optional
41
+ * @returns True if the live link was updated
42
+ */
43
+ async updateLiveLink(params) {
44
+ this.logger.trace(params, 'LiveLinksRepository::updateLiveLink started with params');
45
+ const novaDataSource = new NovaDataSource(this.novaDataSourceConfig, this.logger);
46
+ const result = await updateLiveLink(novaDataSource, params, this.logger);
47
+ this.logger.trace({ result }, 'LiveLinksRepository::updateLiveLink result');
48
+ return result;
49
+ }
50
+ /**
51
+ * Get live links
52
+ * @param params - The parameters to get live links
53
+ * One of the following filters is required:
54
+ * filters.id: the liveLink id, optional. It should be a valid UUID.
55
+ * filters.clientId: the client id, optional
56
+ * pagingOptions.pageSize: the page size, optional. Default: 100
57
+ * pagingOptions.pageIndex: the page index, optional. Default: 0
58
+ * sortOptions.sortField: the sort field, optional. Default: 'id'
59
+ * sortOptions.sortOrder: the sort order, optional. Default: 'DESC'
60
+ * @returns The live links
61
+ */
62
+ async getLiveLinks(params) {
63
+ this.logger.trace(params, 'LiveLinksRepository::getLiveLinks started with params');
64
+ const novaDataSource = new NovaDataSource(this.novaDataSourceConfig, this.logger);
65
+ const result = await getLiveLinks(novaDataSource, params, this.logger);
66
+ this.logger.trace(result, 'LiveLinksRepository::getLiveLinks result');
67
+ return result;
68
+ }
69
+ async getLiveLinkData(params) {
70
+ this.logger.trace(params, 'LiveLinksRepository::getLiveLinkData started with params');
71
+ const novaDataSource = new NovaDataSource(this.novaDataSourceConfig, this.logger);
72
+ const deviceStatusRepository = new DeviceStatusRepository(this.novaDataSourceConfig, this.logger);
73
+ const result = await getLiveLinkData(novaDataSource, params, this.logger, deviceStatusRepository);
74
+ this.logger.trace(result, 'LiveLinksRepository::getLiveLinkData result');
75
+ return result;
76
+ }
77
+ }
78
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/repositories/liveLinks/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAQrD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAClD,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAA;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAEjD,MAAM,OAAO,mBAAoB,SAAQ,cAAc;IACrD;;;;;;;;;;;;OAYG;IACH,KAAK,CAAC,cAAc,CAAC,MAA4B;QAC/C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,yDAAyD,CAAC,CAAA;QAEpF,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,4CAA4C,CAAC,CAAA;QAEvE,OAAO,MAAM,CAAA;IACf,CAAC;IAED;;;;;;;;;;;;;OAaG;IACH,KAAK,CAAC,cAAc,CAAC,MAA4B;QAC/C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,yDAAyD,CAAC,CAAA;QAEpF,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,EAAE,MAAM,EAAE,EAAE,4CAA4C,CAAC,CAAA;QAE3E,OAAO,MAAM,CAAA;IACf,CAAC;IAED;;;;;;;;;;;OAWG;IACH,KAAK,CAAC,YAAY,CAAC,MAA0B;QAC3C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,uDAAuD,CAAC,CAAA;QAElF,MAAM,cAAc,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,oBAAoB,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;QAEjF,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,cAAc,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;QAEtE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,0CAA0C,CAAC,CAAA;QAErE,OAAO,MAAM,CAAA;IACf,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,MAA6B;QACjD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,0DAA0D,CAAC,CAAA;QAErF,MAAM,cAAc,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,oBAAoB,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;QAEjF,MAAM,sBAAsB,GAAG,IAAI,sBAAsB,CACvD,IAAI,CAAC,oBAAoB,EACzB,IAAI,CAAC,MAAM,CACZ,CAAA;QAED,MAAM,MAAM,GAAG,MAAM,eAAe,CAClC,cAAc,EACd,MAAM,EACN,IAAI,CAAC,MAAM,EACX,sBAAsB,CACvB,CAAA;QAED,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,6CAA6C,CAAC,CAAA;QAExE,OAAO,MAAM,CAAA;IACf,CAAC;CACF"}
@@ -0,0 +1,4 @@
1
+ import { NovaDataSource } from '../../novaDataSource';
2
+ import { UpdateLiveLinkParams } from '../../types/liveLinks';
3
+ import { Logger } from '../../types/logger';
4
+ export declare const updateLiveLink: (novaDataSource: NovaDataSource, params: UpdateLiveLinkParams, logger: Logger) => Promise<boolean>;
@@ -0,0 +1,36 @@
1
+ import { LiveLink } from '../../entities/liveLink';
2
+ import { anyAttributeHasValue } from '../../utils/anyAttributeHasValue';
3
+ import { uuidStringToBinaryBuffer } from '../../utils/uuidHelpers';
4
+ export const updateLiveLink = async (novaDataSource, params, logger) => {
5
+ if (!params?.filters?.id) {
6
+ logger.warn({ params }, 'LiveLinksRepository::updateLiveLink - missing required parameters');
7
+ return false;
8
+ }
9
+ if (!anyAttributeHasValue(params?.values)) {
10
+ logger.warn({ params }, 'LiveLinksRepository::updateLiveLink - missing fields to update');
11
+ return false;
12
+ }
13
+ const binaryBuffer = uuidStringToBinaryBuffer(params?.filters?.id);
14
+ if (!binaryBuffer?.length) {
15
+ logger.warn({ params }, 'LiveLinksRepository::updateLiveLink - id should be a valid UUID');
16
+ return null;
17
+ }
18
+ if (params.values?.deviceAccess === 'limited' && !params?.values.devices) {
19
+ logger.warn({ params }, 'LiveLinksRepository::updateLiveLink - devices should be provided if deviceAccess is limited');
20
+ return null;
21
+ }
22
+ return novaDataSource.safeQuery(async (dataSource) => {
23
+ const liveLinksRepository = dataSource.getRepository(LiveLink);
24
+ const queryBuilder = liveLinksRepository
25
+ .createQueryBuilder()
26
+ .update(LiveLink)
27
+ .set({
28
+ ...params.values,
29
+ modifiedAt: new Date(),
30
+ })
31
+ .where('id = :id', { id: binaryBuffer });
32
+ const result = await queryBuilder.execute();
33
+ return result.affected > 0;
34
+ }, 'LiveLinksRepository::updateLiveLink');
35
+ };
36
+ //# sourceMappingURL=updateLiveLink.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"updateLiveLink.js","sourceRoot":"","sources":["../../../src/repositories/liveLinks/updateLiveLink.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AAIlD,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAA;AACvE,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAA;AAElE,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,EACjC,cAA8B,EAC9B,MAA4B,EAC5B,MAAc,EACI,EAAE;IACpB,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE;QACxB,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,mEAAmE,CAAC,CAAA;QAC5F,OAAO,KAAK,CAAA;KACb;IAED,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE;QACzC,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,gEAAgE,CAAC,CAAA;QACzF,OAAO,KAAK,CAAA;KACb;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,iEAAiE,CAAC,CAAA;QAC1F,OAAO,IAAI,CAAA;KACZ;IAED,IAAI,MAAM,CAAC,MAAM,EAAE,YAAY,KAAK,SAAS,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,EAAE;QACxE,MAAM,CAAC,IAAI,CACT,EAAE,MAAM,EAAE,EACV,6FAA6F,CAC9F,CAAA;QACD,OAAO,IAAI,CAAA;KACZ;IAED,OAAO,cAAc,CAAC,SAAS,CAAC,KAAK,EAAE,UAA0B,EAAoB,EAAE;QACrF,MAAM,mBAAmB,GAAG,UAAU,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAA;QAE9D,MAAM,YAAY,GAAG,mBAAmB;aACrC,kBAAkB,EAAE;aACpB,MAAM,CAAC,QAAQ,CAAC;aAChB,GAAG,CAAC;YACH,GAAG,MAAM,CAAC,MAAM;YAChB,UAAU,EAAE,IAAI,IAAI,EAAE;SACvB,CAAC;aACD,KAAK,CAAC,UAAU,EAAE,EAAE,EAAE,EAAE,YAAY,EAAE,CAAC,CAAA;QAE1C,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,OAAO,EAAE,CAAA;QAE3C,OAAO,MAAM,CAAC,QAAQ,GAAG,CAAC,CAAA;IAC5B,CAAC,EAAE,qCAAqC,CAAC,CAAA;AAC3C,CAAC,CAAA"}
@@ -2,4 +2,5 @@ import { CustomUserAlertConfiguration } from '../../entities';
2
2
  import { NovaDataSource } from '../../novaDataSource';
3
3
  import { Logger } from '../../types/logger';
4
4
  import { GetCustomUserAlertConfigurationParams } from '../../types/userConfigurations';
5
+ export declare const createGetCustomUserAlertConfigQuery: (dataSource: NovaDataSource, params: GetCustomUserAlertConfigurationParams, userIdBinaryBuffer: Buffer) => import("typeorm").SelectQueryBuilder<CustomUserAlertConfiguration>;
5
6
  export declare const getCustomUserAlertConfiguration: (novaDataSource: NovaDataSource, params: GetCustomUserAlertConfigurationParams, logger: Logger) => Promise<CustomUserAlertConfiguration[]>;
@@ -1,5 +1,30 @@
1
1
  import { CustomUserAlertConfiguration } from '../../entities';
2
2
  import { uuidStringToBinaryBuffer } from '../../utils/uuidHelpers';
3
+ export const createGetCustomUserAlertConfigQuery = (dataSource, params, userIdBinaryBuffer) => {
4
+ const userAlertTimeWindowsRepository = dataSource.getRepository(CustomUserAlertConfiguration);
5
+ let queryBuilder = userAlertTimeWindowsRepository.createQueryBuilder('customUserAlertConfig');
6
+ if (params?.filters?.configId) {
7
+ queryBuilder = queryBuilder.andWhere('customUserAlertConfig.id = :id', {
8
+ id: params.filters.configId,
9
+ });
10
+ }
11
+ if (params?.filters?.imei) {
12
+ queryBuilder = queryBuilder.andWhere('(customUserAlertConfig.imei IS NULL OR customUserAlertConfig.imei = :imei)', {
13
+ imei: params.filters.imei,
14
+ });
15
+ }
16
+ if (params?.filters?.clientId) {
17
+ queryBuilder = queryBuilder.andWhere('customUserAlertConfig.clientId = :clientId', {
18
+ clientId: params.filters.clientId,
19
+ });
20
+ }
21
+ if (userIdBinaryBuffer) {
22
+ queryBuilder = queryBuilder.andWhere('customUserAlertConfig.userId = :userId', {
23
+ userId: userIdBinaryBuffer,
24
+ });
25
+ }
26
+ return queryBuilder;
27
+ };
3
28
  export const getCustomUserAlertConfiguration = async (novaDataSource, params, logger) => {
4
29
  // imei filter is required
5
30
  if (!params?.filters?.imei &&
@@ -14,28 +39,7 @@ export const getCustomUserAlertConfiguration = async (novaDataSource, params, lo
14
39
  userIdBinaryBuffer = uuidStringToBinaryBuffer(params?.filters?.userId);
15
40
  }
16
41
  return novaDataSource.safeQuery(async (dataSource) => {
17
- const userAlertTimeWindowsRepository = dataSource.getRepository(CustomUserAlertConfiguration);
18
- let queryBuilder = userAlertTimeWindowsRepository.createQueryBuilder('customUserAlertConfig');
19
- if (params?.filters?.configId) {
20
- queryBuilder = queryBuilder.andWhere('customUserAlertConfig.id = :id', {
21
- id: params.filters.configId,
22
- });
23
- }
24
- if (params?.filters?.imei) {
25
- queryBuilder = queryBuilder.andWhere('(customUserAlertConfig.imei IS NULL OR customUserAlertConfig.imei = :imei)', {
26
- imei: params.filters.imei,
27
- });
28
- }
29
- if (params?.filters?.clientId) {
30
- queryBuilder = queryBuilder.andWhere('customUserAlertConfig.clientId = :clientId', {
31
- clientId: params.filters.clientId,
32
- });
33
- }
34
- if (userIdBinaryBuffer) {
35
- queryBuilder = queryBuilder.andWhere('customUserAlertConfig.userId = :userId', {
36
- userId: userIdBinaryBuffer,
37
- });
38
- }
42
+ let queryBuilder = createGetCustomUserAlertConfigQuery(dataSource, params, userIdBinaryBuffer);
39
43
  queryBuilder = queryBuilder
40
44
  .orderBy('customUserAlertConfig.alertTypeId')
41
45
  .limit(params.pagingOptions?.pageSize ?? 100)
@@ -1 +1 @@
1
- {"version":3,"file":"getCustomUserAlertConfiguration.js","sourceRoot":"","sources":["../../../src/repositories/userConfigurations/getCustomUserAlertConfiguration.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,4BAA4B,EAAE,MAAM,gBAAgB,CAAA;AAI7D,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAA;AAElE,MAAM,CAAC,MAAM,+BAA+B,GAAG,KAAK,EAClD,cAA8B,EAC9B,MAA6C,EAC7C,MAAc,EAC2B,EAAE;IAC3C,0BAA0B;IAC1B,IACE,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI;QACtB,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ;QAC1B,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM;QACxB,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAC1B;QACA,MAAM,CAAC,IAAI,CACT,EAAE,MAAM,EAAE,EACV,6FAA6F,CAC9F,CAAA;QACD,OAAO,EAAE,CAAA;KACV;IAED,IAAI,kBAAkB,GAAG,IAAI,CAAA;IAC7B,IAAI,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE;QAC3B,kBAAkB,GAAG,wBAAwB,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,CAAA;KACvE;IAED,OAAO,cAAc,CAAC,SAAS,CAAC,KAAK,EAAE,UAA0B,EAE/D,EAAE;QACF,MAAM,8BAA8B,GAAG,UAAU,CAAC,aAAa,CAAC,4BAA4B,CAAC,CAAA;QAE7F,IAAI,YAAY,GAAG,8BAA8B,CAAC,kBAAkB,CAAC,uBAAuB,CAAC,CAAA;QAE7F,IAAI,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE;YAC7B,YAAY,GAAG,YAAY,CAAC,QAAQ,CAAC,gCAAgC,EAAE;gBACrE,EAAE,EAAE,MAAM,CAAC,OAAO,CAAC,QAAQ;aAC5B,CAAC,CAAA;SACH;QAED,IAAI,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE;YACzB,YAAY,GAAG,YAAY,CAAC,QAAQ,CAClC,4EAA4E,EAC5E;gBACE,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI;aAC1B,CACF,CAAA;SACF;QAED,IAAI,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE;YAC7B,YAAY,GAAG,YAAY,CAAC,QAAQ,CAAC,4CAA4C,EAAE;gBACjF,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,QAAQ;aAClC,CAAC,CAAA;SACH;QAED,IAAI,kBAAkB,EAAE;YACtB,YAAY,GAAG,YAAY,CAAC,QAAQ,CAAC,wCAAwC,EAAE;gBAC7E,MAAM,EAAE,kBAAkB;aAC3B,CAAC,CAAA;SACH;QAED,YAAY,GAAG,YAAY;aACxB,OAAO,CAAC,mCAAmC,CAAC;aAC5C,KAAK,CAAC,MAAM,CAAC,aAAa,EAAE,QAAQ,IAAI,GAAG,CAAC;aAC5C,MAAM,CAAC,CAAC,MAAM,CAAC,aAAa,EAAE,QAAQ,IAAI,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,aAAa,EAAE,SAAS,IAAI,CAAC,CAAC,CAAC,CAAA;QAE3F,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,OAAO,EAAE,CAAA;QAE3C,OAAO,MAAM,CAAA;IACf,CAAC,EAAE,+DAA+D,CAAC,CAAA;AACrE,CAAC,CAAA"}
1
+ {"version":3,"file":"getCustomUserAlertConfiguration.js","sourceRoot":"","sources":["../../../src/repositories/userConfigurations/getCustomUserAlertConfiguration.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,4BAA4B,EAAE,MAAM,gBAAgB,CAAA;AAI7D,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAA;AAElE,MAAM,CAAC,MAAM,mCAAmC,GAAG,CACjD,UAA0B,EAC1B,MAA6C,EAC7C,kBAA0B,EAC1B,EAAE;IACF,MAAM,8BAA8B,GAAG,UAAU,CAAC,aAAa,CAAC,4BAA4B,CAAC,CAAA;IAE7F,IAAI,YAAY,GAAG,8BAA8B,CAAC,kBAAkB,CAAC,uBAAuB,CAAC,CAAA;IAE7F,IAAI,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE;QAC7B,YAAY,GAAG,YAAY,CAAC,QAAQ,CAAC,gCAAgC,EAAE;YACrE,EAAE,EAAE,MAAM,CAAC,OAAO,CAAC,QAAQ;SAC5B,CAAC,CAAA;KACH;IAED,IAAI,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE;QACzB,YAAY,GAAG,YAAY,CAAC,QAAQ,CAClC,4EAA4E,EAC5E;YACE,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI;SAC1B,CACF,CAAA;KACF;IAED,IAAI,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE;QAC7B,YAAY,GAAG,YAAY,CAAC,QAAQ,CAAC,4CAA4C,EAAE;YACjF,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,QAAQ;SAClC,CAAC,CAAA;KACH;IAED,IAAI,kBAAkB,EAAE;QACtB,YAAY,GAAG,YAAY,CAAC,QAAQ,CAAC,wCAAwC,EAAE;YAC7E,MAAM,EAAE,kBAAkB;SAC3B,CAAC,CAAA;KACH;IACD,OAAO,YAAY,CAAA;AACrB,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,+BAA+B,GAAG,KAAK,EAClD,cAA8B,EAC9B,MAA6C,EAC7C,MAAc,EAC2B,EAAE;IAC3C,0BAA0B;IAC1B,IACE,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI;QACtB,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ;QAC1B,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM;QACxB,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAC1B;QACA,MAAM,CAAC,IAAI,CACT,EAAE,MAAM,EAAE,EACV,6FAA6F,CAC9F,CAAA;QACD,OAAO,EAAE,CAAA;KACV;IAED,IAAI,kBAAkB,GAAG,IAAI,CAAA;IAC7B,IAAI,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE;QAC3B,kBAAkB,GAAG,wBAAwB,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,CAAA;KACvE;IAED,OAAO,cAAc,CAAC,SAAS,CAAC,KAAK,EAAE,UAA0B,EAE/D,EAAE;QACF,IAAI,YAAY,GAAG,mCAAmC,CAAC,UAAU,EAAE,MAAM,EAAE,kBAAkB,CAAC,CAAA;QAE9F,YAAY,GAAG,YAAY;aACxB,OAAO,CAAC,mCAAmC,CAAC;aAC5C,KAAK,CAAC,MAAM,CAAC,aAAa,EAAE,QAAQ,IAAI,GAAG,CAAC;aAC5C,MAAM,CAAC,CAAC,MAAM,CAAC,aAAa,EAAE,QAAQ,IAAI,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,aAAa,EAAE,SAAS,IAAI,CAAC,CAAC,CAAC,CAAA;QAE3F,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,OAAO,EAAE,CAAA;QAE3C,OAAO,MAAM,CAAA;IACf,CAAC,EAAE,+DAA+D,CAAC,CAAA;AACrE,CAAC,CAAA"}
@@ -0,0 +1,4 @@
1
+ import { NovaDataSource } from '../../novaDataSource';
2
+ import { Logger } from '../../types/logger';
3
+ import { GetCustomUserAlertConfigurationParams } from '../../types/userConfigurations';
4
+ export declare const getCustomUserAlertConfigurationCount: (novaDataSource: NovaDataSource, params: GetCustomUserAlertConfigurationParams, logger: Logger) => Promise<number>;
@@ -0,0 +1,21 @@
1
+ import { uuidStringToBinaryBuffer } from '../../utils/uuidHelpers';
2
+ import { createGetCustomUserAlertConfigQuery } from './getCustomUserAlertConfiguration';
3
+ export const getCustomUserAlertConfigurationCount = async (novaDataSource, params, logger) => {
4
+ // imei filter is required
5
+ if (!params?.filters?.imei &&
6
+ !params?.filters?.clientId &&
7
+ !params?.filters?.userId &&
8
+ !params?.filters?.configId) {
9
+ logger.warn({ params }, 'UserConfigurationsRepository::getCustomUserAlertConfigurationCount - missing required parameters');
10
+ return -1;
11
+ }
12
+ let userIdBinaryBuffer = null;
13
+ if (params?.filters?.userId) {
14
+ userIdBinaryBuffer = uuidStringToBinaryBuffer(params?.filters?.userId);
15
+ }
16
+ return novaDataSource.safeQuery(async (dataSource) => {
17
+ const query = createGetCustomUserAlertConfigQuery(dataSource, params, userIdBinaryBuffer);
18
+ return await query.getCount();
19
+ }, 'UserConfigurationsRepository::getCustomUserAlertConfigurationCount');
20
+ };
21
+ //# sourceMappingURL=getCustomUserAlertConfigurationCount.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getCustomUserAlertConfigurationCount.js","sourceRoot":"","sources":["../../../src/repositories/userConfigurations/getCustomUserAlertConfigurationCount.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAA;AAClE,OAAO,EAAE,mCAAmC,EAAE,MAAM,mCAAmC,CAAA;AAEvF,MAAM,CAAC,MAAM,oCAAoC,GAAG,KAAK,EACvD,cAA8B,EAC9B,MAA6C,EAC7C,MAAc,EACG,EAAE;IACnB,0BAA0B;IAC1B,IACE,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI;QACtB,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ;QAC1B,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM;QACxB,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAC1B;QACA,MAAM,CAAC,IAAI,CACT,EAAE,MAAM,EAAE,EACV,kGAAkG,CACnG,CAAA;QACD,OAAO,CAAC,CAAC,CAAA;KACV;IAED,IAAI,kBAAkB,GAAG,IAAI,CAAA;IAC7B,IAAI,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE;QAC3B,kBAAkB,GAAG,wBAAwB,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,CAAA;KACvE;IAED,OAAO,cAAc,CAAC,SAAS,CAAC,KAAK,EAAE,UAA0B,EAAmB,EAAE;QACpF,MAAM,KAAK,GAAG,mCAAmC,CAAC,UAAU,EAAE,MAAM,EAAE,kBAAkB,CAAC,CAAA;QAEzF,OAAO,MAAM,KAAK,CAAC,QAAQ,EAAE,CAAA;IAC/B,CAAC,EAAE,oEAAoE,CAAC,CAAA;AAC1E,CAAC,CAAA"}