@spytecgps/nova-orm 0.0.224 → 0.0.226

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 (390) hide show
  1. package/dist/entities/acumaticaAmazonProduct.js +46 -0
  2. package/dist/entities/acumaticaImeiIccidData.js +91 -0
  3. package/dist/entities/acumaticaOrderShipmentDetails.js +61 -0
  4. package/dist/entities/acumaticaShipment.js +31 -0
  5. package/dist/entities/acumaticaShipmentAmazon.js +26 -0
  6. package/dist/entities/aempToken.js +47 -0
  7. package/dist/entities/alert.js +129 -0
  8. package/dist/entities/alertMigration.js +115 -0
  9. package/dist/entities/alertMigrationBatch.js +21 -0
  10. package/dist/entities/alertTimeWindowConfiguration.js +61 -0
  11. package/dist/entities/alertType.js +83 -0
  12. package/dist/entities/appFeatureType.js +36 -0
  13. package/dist/entities/assetCategory.js +32 -0
  14. package/dist/entities/billing.js +108 -0
  15. package/dist/entities/billingCustomerBraintree.js +62 -0
  16. package/dist/entities/billingDeviceHistory.js +61 -0
  17. package/dist/entities/billingHubspotPaymentLog.js +256 -0
  18. package/dist/entities/billingKlarnaCustomer.js +76 -0
  19. package/dist/entities/billingKlarnaOrder.js +114 -0
  20. package/dist/entities/billingStatusHistoryBraintree.js +63 -0
  21. package/dist/entities/billingSubscriptionBraintree.js +229 -0
  22. package/dist/entities/blacklist.js +51 -0
  23. package/dist/entities/blacklistType.js +31 -0
  24. package/dist/entities/boundary.js +119 -0
  25. package/dist/entities/boundaryEvent.js +105 -0
  26. package/dist/entities/cellTower.js +66 -0
  27. package/dist/entities/client.js +153 -0
  28. package/dist/entities/clientAppFeature.js +47 -0
  29. package/dist/entities/clientConfiguration.js +47 -0
  30. package/dist/entities/clientDeviceSetting.js +90 -0
  31. package/dist/entities/clientType.js +36 -0
  32. package/dist/entities/country.js +90 -0
  33. package/dist/entities/customerAttribute.js +52 -0
  34. package/dist/entities/dataSourceType.js +31 -0
  35. package/dist/entities/deactivation.js +83 -0
  36. package/dist/entities/deactivationReason.js +40 -0
  37. package/dist/entities/device.js +160 -0
  38. package/dist/entities/deviceAlertConfiguration.js +71 -0
  39. package/dist/entities/deviceBehavior.js +147 -0
  40. package/dist/entities/deviceCustomConfiguration.js +67 -0
  41. package/dist/entities/deviceHistory.js +46 -0
  42. package/dist/entities/deviceModelListener.js +46 -0
  43. package/dist/entities/devicePairing.js +67 -0
  44. package/dist/entities/devicePromotion.js +104 -0
  45. package/dist/entities/deviceReplacement.js +57 -0
  46. package/dist/entities/deviceTask.js +44 -0
  47. package/dist/entities/deviceType.js +149 -0
  48. package/dist/entities/deviceTypeEvent.js +32 -0
  49. package/dist/entities/deviceTypeFeature.js +32 -0
  50. package/dist/entities/deviceTypeFirmware.js +117 -0
  51. package/dist/entities/entityTag.js +48 -0
  52. package/dist/entities/entityType.js +31 -0
  53. package/dist/entities/event.js +36 -0
  54. package/dist/entities/feature.js +36 -0
  55. package/dist/entities/firmwareAutoUpgradeBlacklist.js +35 -0
  56. package/dist/entities/firmwareUpgradeTask.js +105 -0
  57. package/dist/entities/iccidStatus.js +49 -0
  58. package/dist/entities/imeiIccidCarrier.js +125 -0
  59. package/dist/entities/imeiIccidHistory.js +43 -0
  60. package/dist/entities/index.js +99 -0
  61. package/dist/entities/industry.js +46 -0
  62. package/dist/entities/latestPosition.js +100 -0
  63. package/dist/entities/latestPositionMigration.js +96 -0
  64. package/dist/entities/latestPositionMigrationBatch.js +21 -0
  65. package/dist/entities/magento2Gps.js +256 -0
  66. package/dist/entities/magento2Plan.js +41 -0
  67. package/dist/entities/mobileNetwork.js +51 -0
  68. package/dist/entities/notificationRecipient.js +100 -0
  69. package/dist/entities/organization.js +46 -0
  70. package/dist/entities/plan.js +86 -0
  71. package/dist/entities/position.js +102 -0
  72. package/dist/entities/positionMigration.js +96 -0
  73. package/dist/entities/positionMigrationBatch.js +21 -0
  74. package/dist/entities/promotion.js +134 -0
  75. package/dist/entities/securityRole.js +41 -0
  76. package/dist/entities/serviceProvider.js +41 -0
  77. package/dist/entities/serviceProviderProduct.js +61 -0
  78. package/dist/entities/serviceProviderProductNetwork.js +31 -0
  79. package/dist/entities/serviceProviderProductType.js +31 -0
  80. package/dist/entities/sim.js +92 -0
  81. package/dist/entities/task.js +146 -0
  82. package/dist/entities/taskSchedule.js +141 -0
  83. package/dist/entities/trip.js +127 -0
  84. package/dist/entities/tripCompletionStatus.js +36 -0
  85. package/dist/entities/tripPosition.js +26 -0
  86. package/dist/entities/user.js +196 -0
  87. package/dist/entities/userActivation.js +52 -0
  88. package/dist/entities/userActivationDevice.js +164 -0
  89. package/dist/entities/userActivationEvent.js +61 -0
  90. package/dist/entities/userActivationMetric.js +208 -0
  91. package/dist/entities/userAlertComplain.js +78 -0
  92. package/dist/entities/userAlertConfiguration.js +109 -0
  93. package/dist/entities/userAppFeedback.js +52 -0
  94. package/dist/entities/userAppIncident.js +176 -0
  95. package/dist/entities/userConfiguration.js +109 -0
  96. package/dist/entities/userDataDeletionRequest.js +56 -0
  97. package/dist/entities/userDeviceBehaviorTask.js +80 -0
  98. package/dist/entities/userInvitation.js +89 -0
  99. package/dist/entities/userRatingRequest.js +75 -0
  100. package/dist/entities/userRegistrationAttempt.js +177 -0
  101. package/dist/entities/userSecurityRole.js +33 -0
  102. package/dist/index.js +1 -2
  103. package/dist/migration/1684483704434-addLowerCaseIndex.js +16 -0
  104. package/dist/novaDataSource.js +111 -0
  105. package/dist/repositories/acumatica/getAcumaticaImeiIccidData.js +35 -0
  106. package/dist/repositories/acumatica/getAcumaticaShipmentDetails.js +50 -0
  107. package/dist/repositories/acumatica/getLastAcumaticaShipmentDetails.js +27 -0
  108. package/dist/repositories/acumatica/index.js +52 -0
  109. package/dist/repositories/aempToken/createAempToken.js +26 -0
  110. package/dist/repositories/aempToken/deleteAempTokens.js +30 -0
  111. package/dist/repositories/aempToken/getAempTokens.js +27 -0
  112. package/dist/repositories/aempToken/index.js +53 -0
  113. package/dist/repositories/alertTypes/getAlertTypes.js +13 -0
  114. package/dist/repositories/alertTypes/index.js +18 -0
  115. package/dist/repositories/alerts/createAlert.js +94 -0
  116. package/dist/repositories/alerts/createUserAlertComplain.js +26 -0
  117. package/dist/repositories/alerts/getAlertsReportByClient.js +65 -0
  118. package/dist/repositories/alerts/getAlertsReportByUser.js +127 -0
  119. package/dist/repositories/alerts/index.js +104 -0
  120. package/dist/repositories/appFeatures/createAppFeatureType.js +15 -0
  121. package/dist/repositories/appFeatures/createClientAppFeature.js +15 -0
  122. package/dist/repositories/appFeatures/getClientAppFeatures.js +39 -0
  123. package/dist/repositories/appFeatures/index.js +57 -0
  124. package/dist/repositories/assetCategories/getAssetCategories.js +8 -0
  125. package/dist/repositories/assetCategories/index.js +16 -0
  126. package/dist/repositories/baseRepository.js +9 -0
  127. package/dist/repositories/billing/createBilling.js +37 -0
  128. package/dist/repositories/billing/createBillingDeviceHistory.js +30 -0
  129. package/dist/repositories/billing/createBillingHubspotPaymentLog.js +61 -0
  130. package/dist/repositories/billing/createBillingStatusHistoryBraintree.js +32 -0
  131. package/dist/repositories/billing/getBillingCustomerBraintreeById.js +18 -0
  132. package/dist/repositories/billing/getBillingKlarnaOrderByImei.js +18 -0
  133. package/dist/repositories/billing/getBillingSubscriptionBraintreeByImei.js +18 -0
  134. package/dist/repositories/billing/getBillingSubscriptionsBraintree.js +25 -0
  135. package/dist/repositories/billing/getBillings.js +42 -0
  136. package/dist/repositories/billing/getCanceledImeis.js +84 -0
  137. package/dist/repositories/billing/getCanceledImeisMatchingMagentoData.js +100 -0
  138. package/dist/repositories/billing/getChurnStatusByClientId.js +27 -0
  139. package/dist/repositories/billing/getClientIdFromBraintreeCustomer.js +20 -0
  140. package/dist/repositories/billing/getMagentoPlan.js +21 -0
  141. package/dist/repositories/billing/getUserByBraintreeCustomerId.js +22 -0
  142. package/dist/repositories/billing/index.js +353 -0
  143. package/dist/repositories/billing/updateBilling.js +43 -0
  144. package/dist/repositories/billing/updateBillingCustomerBraintree.js +37 -0
  145. package/dist/repositories/billing/upsertBillingCustomerBraintree.js +39 -0
  146. package/dist/repositories/billing/upsertBillingKlarnaCustomer.js +52 -0
  147. package/dist/repositories/billing/upsertBillingKlarnaOrder.js +58 -0
  148. package/dist/repositories/billing/upsertBillingSubscriptionBraintree.js +20 -0
  149. package/dist/repositories/blacklist/getBlacklists.js +19 -0
  150. package/dist/repositories/blacklist/index.js +19 -0
  151. package/dist/repositories/boundaries/createBoundary.js +52 -0
  152. package/dist/repositories/boundaries/deleteBoundary.js +23 -0
  153. package/dist/repositories/boundaries/getBoundariesByClientId.js +17 -0
  154. package/dist/repositories/boundaries/getBoundariesIdsByClientId.js +19 -0
  155. package/dist/repositories/boundaries/getBoundariesReport.js +141 -0
  156. package/dist/repositories/boundaries/getBoundaryById.js +14 -0
  157. package/dist/repositories/boundaries/index.js +178 -0
  158. package/dist/repositories/boundaries/processBoundaryEvent.js +211 -0
  159. package/dist/repositories/boundaries/updateBoundary.js +53 -0
  160. package/dist/repositories/boundaries/upsertBoundaryEvent.js +23 -0
  161. package/dist/repositories/clients/createClient.js +35 -0
  162. package/dist/repositories/clients/createClientConfiguration.js +18 -0
  163. package/dist/repositories/clients/createCustomerAttribute.js +16 -0
  164. package/dist/repositories/clients/deleteClientAndConfiguration.js +25 -0
  165. package/dist/repositories/clients/getClient.js +32 -0
  166. package/dist/repositories/clients/getClientConfiguration.js +14 -0
  167. package/dist/repositories/clients/getClients.js +26 -0
  168. package/dist/repositories/clients/getCustomerAttribute.js +14 -0
  169. package/dist/repositories/clients/index.js +192 -0
  170. package/dist/repositories/clients/updateClient.js +52 -0
  171. package/dist/repositories/clients/updateClientConfiguration.js +31 -0
  172. package/dist/repositories/clients/updateCustomerAttribute.js +27 -0
  173. package/dist/repositories/countries/getCountries.js +14 -0
  174. package/dist/repositories/countries/getCountry.js +23 -0
  175. package/dist/repositories/countries/index.js +33 -0
  176. package/dist/repositories/deactivations/createDeactivation.js +16 -0
  177. package/dist/repositories/deactivations/getDeactivationReasons.js +24 -0
  178. package/dist/repositories/deactivations/getLatestDeactivationByImei.js +19 -0
  179. package/dist/repositories/deactivations/index.js +58 -0
  180. package/dist/repositories/deviceBehaviors/createDeviceBehaviorTask.js +48 -0
  181. package/dist/repositories/deviceBehaviors/getDeviceBehaviorTasks.js +40 -0
  182. package/dist/repositories/deviceBehaviors/getDeviceBehaviors.js +41 -0
  183. package/dist/repositories/deviceBehaviors/getDeviceBehaviorsByIds.js +16 -0
  184. package/dist/repositories/deviceBehaviors/getDevicesLastBehaviorTask.js +42 -0
  185. package/dist/repositories/deviceBehaviors/getLatestDeviceBehaviorTasks.js +40 -0
  186. package/dist/repositories/deviceBehaviors/index.js +147 -0
  187. package/dist/repositories/deviceBehaviors/updateDeviceBehaviorTask.js +27 -0
  188. package/dist/repositories/deviceBehaviors/upsertDeviceBehavior.js +20 -0
  189. package/dist/repositories/devicePairings/createDevicePairing.js +21 -0
  190. package/dist/repositories/devicePairings/deleteDevicePairing.js +16 -0
  191. package/dist/repositories/devicePairings/getDevicePairings.js +36 -0
  192. package/dist/repositories/devicePairings/getDevicePairingsByImei.js +20 -0
  193. package/dist/repositories/devicePairings/index.js +90 -0
  194. package/dist/repositories/devicePairings/updateDevicePairing.js +32 -0
  195. package/dist/repositories/devices/createClientDeviceSetting.js +25 -0
  196. package/dist/repositories/devices/createDevice.js +30 -0
  197. package/dist/repositories/devices/createDeviceReplacement.js +34 -0
  198. package/dist/repositories/devices/createDeviceType.js +15 -0
  199. package/dist/repositories/devices/deleteDevice.js +16 -0
  200. package/dist/repositories/devices/generateDeviceIdentifierKey.js +18 -0
  201. package/dist/repositories/devices/getCanceledDevicesWithActiveSimCards.js +40 -0
  202. package/dist/repositories/devices/getCarrierStatusUpdatedBefore.js +40 -0
  203. package/dist/repositories/devices/getClientDeviceSetting.js +20 -0
  204. package/dist/repositories/devices/getClientDeviceSettings.js +17 -0
  205. package/dist/repositories/devices/getDevice.js +33 -0
  206. package/dist/repositories/devices/getDeviceCustomConfig.js +37 -0
  207. package/dist/repositories/devices/getDeviceTypeByImei.js +18 -0
  208. package/dist/repositories/devices/getDeviceTypes.js +30 -0
  209. package/dist/repositories/devices/getDeviceTypesModelsOrderedByDeviceCount.js +27 -0
  210. package/dist/repositories/devices/getDeviceWithUsersInfo.js +59 -0
  211. package/dist/repositories/devices/getDevices.js +46 -0
  212. package/dist/repositories/devices/getFilteredImeisWithStatus.js +20 -0
  213. package/dist/repositories/devices/getIccidStatus.js +17 -0
  214. package/dist/repositories/devices/getImeiIccidCarrier.js +23 -0
  215. package/dist/repositories/devices/getImeiIccidCarriers.js +17 -0
  216. package/dist/repositories/devices/index.js +464 -0
  217. package/dist/repositories/devices/updateClientDeviceSetting.js +38 -0
  218. package/dist/repositories/devices/updateDevice.js +56 -0
  219. package/dist/repositories/devices/updateDeviceType.js +43 -0
  220. package/dist/repositories/devices/updateIccidStatus.js +28 -0
  221. package/dist/repositories/devices/updateImeiIccidCarrier.js +43 -0
  222. package/dist/repositories/devices/upsertIccidStatus.js +36 -0
  223. package/dist/repositories/firmwares/createDeviceFirmware.js +37 -0
  224. package/dist/repositories/firmwares/createFirmwareAutoUpgradeBlacklist.js +16 -0
  225. package/dist/repositories/firmwares/createFirmwareUpgradeTask.js +36 -0
  226. package/dist/repositories/firmwares/getDeviceFirmwares.js +21 -0
  227. package/dist/repositories/firmwares/getFirmwareAutoUpgradeBlacklist.js +23 -0
  228. package/dist/repositories/firmwares/getFirmwareUpgradeTasks.js +105 -0
  229. package/dist/repositories/firmwares/getFirmwareUpgradeTasksCount.js +56 -0
  230. package/dist/repositories/firmwares/index.js +194 -0
  231. package/dist/repositories/firmwares/updateDeviceFirmware.js +41 -0
  232. package/dist/repositories/firmwares/updateFirmwareUpgradeTasks.js +37 -0
  233. package/dist/repositories/index.js +31 -0
  234. package/dist/repositories/notificationRecipients/createNotificationRecipient.js +37 -0
  235. package/dist/repositories/notificationRecipients/deleteNotificationRecipients.js +26 -0
  236. package/dist/repositories/notificationRecipients/deleteNotificationRecipientsByEmailOrPhone.js +28 -0
  237. package/dist/repositories/notificationRecipients/getNotificationRecipients.js +16 -0
  238. package/dist/repositories/notificationRecipients/index.js +131 -0
  239. package/dist/repositories/notificationRecipients/updateNotificationRecipient.js +37 -0
  240. package/dist/repositories/notificationRecipients/updateUsersNotificationsUnsubscribedInfoStatus.js +98 -0
  241. package/dist/repositories/notificationRecipients/updateUsersNotificationsUnsuscribedStatus.js +35 -0
  242. package/dist/repositories/positions/createPosition.js +100 -0
  243. package/dist/repositories/positions/getLatestPositionByImei.js +26 -0
  244. package/dist/repositories/positions/getPositionsByImei.js +23 -0
  245. package/dist/repositories/positions/getPositionsReportByClient.js +87 -0
  246. package/dist/repositories/positions/index.js +101 -0
  247. package/dist/repositories/positions/upsertLatestPosition.js +41 -0
  248. package/dist/repositories/security/createUserRole.js +30 -0
  249. package/dist/repositories/security/getAllRoles.js +8 -0
  250. package/dist/repositories/security/getUserRoles.js +15 -0
  251. package/dist/repositories/security/getUserRolesByClientId.js +17 -0
  252. package/dist/repositories/security/index.js +111 -0
  253. package/dist/repositories/security/removeUserRoles.js +21 -0
  254. package/dist/repositories/security/updateUserRole.js +27 -0
  255. package/dist/repositories/security/userIsAdminOrOwner.js +20 -0
  256. package/dist/repositories/security/userIsInRole.js +18 -0
  257. package/dist/repositories/tasks/addTaskScheduleDevices.js +37 -0
  258. package/dist/repositories/tasks/completeTask.js +25 -0
  259. package/dist/repositories/tasks/createTask.js +22 -0
  260. package/dist/repositories/tasks/createTaskSchedule.js +33 -0
  261. package/dist/repositories/tasks/deleteTask.js +22 -0
  262. package/dist/repositories/tasks/deleteTaskSchedule.js +22 -0
  263. package/dist/repositories/tasks/deleteTaskScheduleDevices.js +17 -0
  264. package/dist/repositories/tasks/getDeviceTasks.js +28 -0
  265. package/dist/repositories/tasks/getTaskSchedule.js +31 -0
  266. package/dist/repositories/tasks/getTaskSchedules.js +75 -0
  267. package/dist/repositories/tasks/getTaskSchedulesCount.js +23 -0
  268. package/dist/repositories/tasks/getTasks.js +29 -0
  269. package/dist/repositories/tasks/getTasksCount.js +20 -0
  270. package/dist/repositories/tasks/index.js +441 -0
  271. package/dist/repositories/tasks/setTaskAsPastDue.js +23 -0
  272. package/dist/repositories/tasks/setTaskScheduleDevices.js +43 -0
  273. package/dist/repositories/tasks/updateTask.js +21 -0
  274. package/dist/repositories/tasks/updateTaskSchedule.js +35 -0
  275. package/dist/repositories/trips/createTrip.js +29 -0
  276. package/dist/repositories/trips/getTripById.js +15 -0
  277. package/dist/repositories/trips/getTrips.js +65 -0
  278. package/dist/repositories/trips/index.js +69 -0
  279. package/dist/repositories/trips/updateTripEndValues.js +36 -0
  280. package/dist/repositories/trips/upsertTrip.js +31 -0
  281. package/dist/repositories/userActivations/createUserActivation.js +26 -0
  282. package/dist/repositories/userActivations/createUserActivationDevice.js +35 -0
  283. package/dist/repositories/userActivations/createUserActivationEvent.js +34 -0
  284. package/dist/repositories/userActivations/createUserActivationMetric.js +28 -0
  285. package/dist/repositories/userActivations/deleteUserActivation.js +22 -0
  286. package/dist/repositories/userActivations/getLastActivationDevice.js +26 -0
  287. package/dist/repositories/userActivations/getUserActivationDevices.js +24 -0
  288. package/dist/repositories/userActivations/getUserActivationDevicesByClientId.js +26 -0
  289. package/dist/repositories/userActivations/getUserActivationMetrics.js +24 -0
  290. package/dist/repositories/userActivations/getUserActivations.js +29 -0
  291. package/dist/repositories/userActivations/index.js +229 -0
  292. package/dist/repositories/userActivations/updateUserActivationDevice.js +39 -0
  293. package/dist/repositories/userActivations/updateUserActivationMetrics.js +61 -0
  294. package/dist/repositories/userAppFeedback/createUserAppFeedback.js +26 -0
  295. package/dist/repositories/userAppFeedback/index.js +23 -0
  296. package/dist/repositories/userAppIncidents/getUserAppIncidents.js +28 -0
  297. package/dist/repositories/userAppIncidents/index.js +63 -0
  298. package/dist/repositories/userAppIncidents/upsertUserAppIncident.js +53 -0
  299. package/dist/repositories/userConfigurations/bulkCreateUserAlertConfigurations.js +46 -0
  300. package/dist/repositories/userConfigurations/createDeviceAlertTimeWindows.js +36 -0
  301. package/dist/repositories/userConfigurations/createUserAlertTimeWindows.js +33 -0
  302. package/dist/repositories/userConfigurations/createUserConfiguration.js +34 -0
  303. package/dist/repositories/userConfigurations/deleteDeviceAlertTimeWindows.js +17 -0
  304. package/dist/repositories/userConfigurations/deleteUserAlertConfigurations.js +24 -0
  305. package/dist/repositories/userConfigurations/deleteUserAlertTimeWindows.js +17 -0
  306. package/dist/repositories/userConfigurations/deleteUserConfiguration.js +23 -0
  307. package/dist/repositories/userConfigurations/getDeviceAlertTimeWindows.js +43 -0
  308. package/dist/repositories/userConfigurations/getUserAlertConfigurations.js +25 -0
  309. package/dist/repositories/userConfigurations/getUserAlertTimeWindows.js +35 -0
  310. package/dist/repositories/userConfigurations/getUserConfigurations.js +31 -0
  311. package/dist/repositories/userConfigurations/index.js +298 -0
  312. package/dist/repositories/userConfigurations/updateDeviceAlertTimeWindows.js +29 -0
  313. package/dist/repositories/userConfigurations/updateUserAlertConfigurations.js +46 -0
  314. package/dist/repositories/userConfigurations/updateUserAlertTimeWindows.js +28 -0
  315. package/dist/repositories/userConfigurations/updateUserConfiguration.js +49 -0
  316. package/dist/repositories/userDataDeletionRequests/createUserDataDeletionRequest.js +28 -0
  317. package/dist/repositories/userDataDeletionRequests/getUserDataDeletionRequest.js +29 -0
  318. package/dist/repositories/userDataDeletionRequests/index.js +66 -0
  319. package/dist/repositories/userDataDeletionRequests/removeUserDataDeletionRequest.js +17 -0
  320. package/dist/repositories/userDataDeletionRequests/updateUserDataDeletionRequest.js +38 -0
  321. package/dist/repositories/userInvitations/createUserInvitation.js +43 -0
  322. package/dist/repositories/userInvitations/getUserInvitationById.js +22 -0
  323. package/dist/repositories/userInvitations/getUserInvitations.js +31 -0
  324. package/dist/repositories/userInvitations/index.js +82 -0
  325. package/dist/repositories/userInvitations/updateUserInvitation.js +50 -0
  326. package/dist/repositories/userRatingRequests/createUserRatingRequest.js +34 -0
  327. package/dist/repositories/userRatingRequests/getUserRatingRequests.js +23 -0
  328. package/dist/repositories/userRatingRequests/index.js +41 -0
  329. package/dist/repositories/userRegistrationAttempts/createUserRegistrationAttempt.js +40 -0
  330. package/dist/repositories/userRegistrationAttempts/getUserRegistrationAttempts.js +29 -0
  331. package/dist/repositories/userRegistrationAttempts/index.js +70 -0
  332. package/dist/repositories/userRegistrationAttempts/updateUserRegistrationAttempt.js +40 -0
  333. package/dist/repositories/users/createUser.js +47 -0
  334. package/dist/repositories/users/deleteAccount.js +98 -0
  335. package/dist/repositories/users/deleteUser.js +22 -0
  336. package/dist/repositories/users/getUserById.js +22 -0
  337. package/dist/repositories/users/getUserData.js +66 -0
  338. package/dist/repositories/users/getUsers.js +49 -0
  339. package/dist/repositories/users/getUsersConfigurationByImei.js +29 -0
  340. package/dist/repositories/users/getUsersIdByPhoneAndCountryCode.js +21 -0
  341. package/dist/repositories/users/getUsersWithRoles.js +32 -0
  342. package/dist/repositories/users/index.js +195 -0
  343. package/dist/repositories/users/updateUser.js +109 -0
  344. package/dist/subscribers/allEntitiesSubscriber.js +52 -0
  345. package/dist/subscribers/index.js +2 -0
  346. package/dist/types/acumatica.js +1 -0
  347. package/dist/types/aempToken.js +1 -0
  348. package/dist/types/alert.js +1 -0
  349. package/dist/types/alertTypes.js +1 -0
  350. package/dist/types/appFeatures.js +1 -0
  351. package/dist/types/billing.js +1 -0
  352. package/dist/types/blacklist.js +1 -0
  353. package/dist/types/boundaries.js +1 -0
  354. package/dist/types/clients.js +1 -0
  355. package/dist/types/common.js +1 -0
  356. package/dist/types/countries.js +1 -0
  357. package/dist/types/deactivations.js +1 -0
  358. package/dist/types/deviceBehaviors.js +1 -0
  359. package/dist/types/devicePairings.js +1 -0
  360. package/dist/types/devices.js +1 -0
  361. package/dist/types/enums.js +74 -0
  362. package/dist/types/firmwares.js +17 -0
  363. package/dist/types/index.js +30 -0
  364. package/dist/types/logger.js +9 -0
  365. package/dist/types/notificationRecipients.js +1 -0
  366. package/dist/types/position.js +1 -0
  367. package/dist/types/security.js +1 -0
  368. package/dist/types/tasks.js +1 -0
  369. package/dist/types/trip.js +29 -0
  370. package/dist/types/user.js +1 -0
  371. package/dist/types/userActivations.js +1 -0
  372. package/dist/types/userAppFeedback.js +1 -0
  373. package/dist/types/userAppIncidents.js +1 -0
  374. package/dist/types/userConfigurations.js +1 -0
  375. package/dist/types/userDataDeletionRequests.js +1 -0
  376. package/dist/types/userInvitations.js +1 -0
  377. package/dist/types/userRatingRequests.js +1 -0
  378. package/dist/types/userRegistrationAttempts.js +1 -0
  379. package/dist/utils/anyAttributeHasValue.js +20 -0
  380. package/dist/utils/anyAttributeIsNull.js +12 -0
  381. package/dist/utils/boolToNumberTransformer.js +23 -0
  382. package/dist/utils/consoleLogger.js +42 -0
  383. package/dist/utils/filterTools.js +299 -0
  384. package/dist/utils/mapRawEntityToEntity.js +12 -0
  385. package/dist/utils/queryLogger.js +48 -0
  386. package/dist/utils/randomizer.js +39 -0
  387. package/dist/utils/stringToDateTransformer.js +16 -0
  388. package/dist/utils/uuidHelpers.js +30 -0
  389. package/package.json +10 -8
  390. package/dist/index.js.LICENSE.txt +0 -41
@@ -0,0 +1,20 @@
1
+ import { Device } from '../../entities';
2
+ export const getFilteredImeisWithStatus = async (novaDataSource, params, logger) => {
3
+ if (!params?.filters?.imeiList?.length && !params?.filters?.status) {
4
+ logger.warn({ params }, 'DevicesRepository::getFilteredImeisWithStatus missing required parameters');
5
+ return [];
6
+ }
7
+ return novaDataSource.safeQuery(async (dataSource) => {
8
+ const devicesRepository = dataSource.getRepository(Device);
9
+ const queryBuilder = devicesRepository
10
+ .createQueryBuilder('device')
11
+ .where('imei IN (:...imeiList)', {
12
+ imeiList: params.filters.imeiList,
13
+ })
14
+ .andWhere('status = :status', {
15
+ status: params.filters.status,
16
+ });
17
+ const imeiList = await queryBuilder.select('imei').getRawMany();
18
+ return imeiList.map(x => x.imei);
19
+ }, 'DevicesRepository::getFilteredImeisWithStatus');
20
+ };
@@ -0,0 +1,17 @@
1
+ import { IccidStatus } from '../../entities';
2
+ export const getIccidStatus = async (novaDataSource, params, logger) => {
3
+ if (!params?.filters?.iccid) {
4
+ logger.warn({ params }, 'DevicesRepository::getIccidStatus missing required parameters');
5
+ return null;
6
+ }
7
+ return novaDataSource.safeQuery(async (dataSource) => {
8
+ const iccidStatusRepository = dataSource.getRepository(IccidStatus);
9
+ const queryBuilder = iccidStatusRepository
10
+ .createQueryBuilder('iccidStatus')
11
+ .where('iccidStatus.iccid = :iccid', {
12
+ iccid: params.filters.iccid,
13
+ });
14
+ const result = await queryBuilder.getOne();
15
+ return result;
16
+ }, 'DevicesRepository::getIccidStatus');
17
+ };
@@ -0,0 +1,23 @@
1
+ import { ImeiIccidCarrier } from '../../entities';
2
+ export const getImeiIccidCarrier = async (novaDataSource, params, logger) => {
3
+ if (!params?.filters?.imei && !params?.filters?.iccid) {
4
+ logger.warn({ params }, 'DevicesRepository::getImeiIccidCarrier missing required parameters');
5
+ return null;
6
+ }
7
+ return novaDataSource.safeQuery(async (dataSource) => {
8
+ const imeiIccidCarrierRepository = dataSource.getRepository(ImeiIccidCarrier);
9
+ let queryBuilder = imeiIccidCarrierRepository.createQueryBuilder('imeiIccidCarrier');
10
+ if (params?.filters?.imei) {
11
+ queryBuilder = queryBuilder.where('imeiIccidCarrier.imei = :imei', {
12
+ imei: params.filters.imei,
13
+ });
14
+ }
15
+ if (params?.filters?.iccid) {
16
+ queryBuilder = queryBuilder.andWhere('imeiIccidCarrier.iccid = :iccid', {
17
+ iccid: params.filters.iccid,
18
+ });
19
+ }
20
+ const result = await queryBuilder.getOne();
21
+ return result;
22
+ }, 'DevicesRepository::getImeiIccidCarrier');
23
+ };
@@ -0,0 +1,17 @@
1
+ import { ImeiIccidCarrier } from '../../entities';
2
+ export const getImeiIccidCarriers = async (novaDataSource, params, logger) => {
3
+ if (!params?.filters?.imeiList?.length) {
4
+ logger.warn({ params }, 'DevicesRepository::getImeiIccidCarriers missing required parameters');
5
+ return [];
6
+ }
7
+ return novaDataSource.safeQuery(async (dataSource) => {
8
+ const imeiIccidCarrierRepository = dataSource.getRepository(ImeiIccidCarrier);
9
+ const queryBuilder = imeiIccidCarrierRepository
10
+ .createQueryBuilder('imeiIccidCarrier')
11
+ .where('imeiIccidCarrier.imei IN (:...imeiList)', {
12
+ imeiList: params.filters.imeiList,
13
+ });
14
+ const result = await queryBuilder.getMany();
15
+ return result;
16
+ }, 'DevicesRepository::getImeiIccidCarriers');
17
+ };
@@ -0,0 +1,464 @@
1
+ import { NovaDataSource } from '../../novaDataSource';
2
+ import { BaseRepository } from './../baseRepository';
3
+ import { createClientDeviceSetting } from './createClientDeviceSetting';
4
+ import { createDevice } from './createDevice';
5
+ import { createDeviceReplacement } from './createDeviceReplacement';
6
+ import { createDeviceType } from './createDeviceType';
7
+ import { deleteDevice } from './deleteDevice';
8
+ import { generateDeviceIdentifierKey } from './generateDeviceIdentifierKey';
9
+ import { getCanceledDevicesWithActiveSimCards } from './getCanceledDevicesWithActiveSimCards';
10
+ import { getCarrierStatusUpdatedBefore } from './getCarrierStatusUpdatedBefore';
11
+ import { getClientDeviceSetting } from './getClientDeviceSetting';
12
+ import { getClientDeviceSettings } from './getClientDeviceSettings';
13
+ import { getDevice } from './getDevice';
14
+ import { getDeviceCustomConfigs } from './getDeviceCustomConfig';
15
+ import { getDevices } from './getDevices';
16
+ import { getDeviceTypeByImei } from './getDeviceTypeByImei';
17
+ import { getDeviceTypes } from './getDeviceTypes';
18
+ import { getDeviceTypesModelsOrderedByDeviceCount } from './getDeviceTypesModelsOrderedByDeviceCount';
19
+ import { getDeviceWithUsersInfo } from './getDeviceWithUsersInfo';
20
+ import { getFilteredImeisWithStatus } from './getFilteredImeisWithStatus';
21
+ import { getIccidStatus } from './getIccidStatus';
22
+ import { getImeiIccidCarrier } from './getImeiIccidCarrier';
23
+ import { getImeiIccidCarriers } from './getImeiIccidCarriers';
24
+ import { updateClientDeviceSetting } from './updateClientDeviceSetting';
25
+ import { updateDevice } from './updateDevice';
26
+ import { updateDeviceType } from './updateDeviceType';
27
+ import { updateIccidStatus } from './updateIccidStatus';
28
+ import { updateImeiIccidCarrier } from './updateImeiIccidCarrier';
29
+ import { upsertIccidStatus } from './upsertIccidStatus';
30
+ export class DevicesRepository extends BaseRepository {
31
+ /**
32
+ * Get device with filters
33
+ * @param {GetDeviceParams} params containing information to get a device with filters
34
+ * - filters.imei: The imei of the device
35
+ * - filters.id: The id of the device
36
+ * - projectionOptions.withDeviceType: Whether to get the device type object
37
+ * - projectionOptions.withIccidCarrier: Whether to get the iccid carrier object
38
+ */
39
+ async getDevice(params) {
40
+ this.logger.trace(params, 'DevicesRepository::getDevice started with params');
41
+ const novaDataSource = new NovaDataSource(this.novaDataSourceConfig, this.logger);
42
+ const result = await getDevice(novaDataSource, params, this.logger);
43
+ this.logger.trace(result, 'DevicesRepository::getDevice result');
44
+ return result;
45
+ }
46
+ /**
47
+ * Get devices by type id
48
+ * @param {GetDevicesParams} params containing information to get devices by type id
49
+ * - filters.deviceTypeId: The device type id
50
+ * - filters.status: The device status
51
+ * - filters.clientId: The client id
52
+ * - filters.imeiList: The imei list
53
+ * - projectionOptions.withDeviceType: Whether to get the device type object
54
+ * - projectionOptions.withIccidCarrier: Whether to get the iccid carrier object
55
+ */
56
+ async getDevices(params) {
57
+ this.logger.trace(params, 'DevicesRepository::getDevices started with params');
58
+ const novaDataSource = new NovaDataSource(this.novaDataSourceConfig, this.logger);
59
+ const result = await getDevices(novaDataSource, params, this.logger);
60
+ this.logger.trace(result, 'DevicesRepository::getDevices result');
61
+ return result;
62
+ }
63
+ /**
64
+ * Get filtered imeis with status
65
+ * @param {GetFilteredImeisWithStatusParams} params containing information to get filtered imeis with status
66
+ * - filters.imeiList: The imei list to filter
67
+ * - filters.status: The device status
68
+ * @returns {Promise<string>} The imei list filtered by status
69
+ */
70
+ async getFilteredImeisWithStatus(params) {
71
+ this.logger.trace(params, 'DevicesRepository::getFilteredImeisWithStatus started with params');
72
+ const novaDataSource = new NovaDataSource(this.novaDataSourceConfig, this.logger);
73
+ const result = await getFilteredImeisWithStatus(novaDataSource, params, this.logger);
74
+ this.logger.trace(result, 'DevicesRepository::getFilteredImeisWithStatus result');
75
+ return result;
76
+ }
77
+ /**
78
+ * Create device
79
+ * @param {CreateDeviceParams} params containing information to create a device
80
+ * - identifier: The device identifier
81
+ * - imei: The imei of the device
82
+ * - clientId: The client id
83
+ * - deviceTypeId: The device type id
84
+ * - iccid: The iccid of the device
85
+ * - name: The name of the device
86
+ * - color: The color of the device
87
+ * - icon: The icon of the device
88
+ * - status: The status of the device
89
+ * - forward: Whether to forward the device
90
+ * - description: The description of the device
91
+ * - dataSourceTypeId: The data source type id of the device
92
+ * - assetCategoryId: The asset category id of the device
93
+ * - usageRegion: The usage region of the device
94
+ * - createdBy: The user who created the device
95
+ *
96
+ * @returns {Promise<Device>} The created device
97
+ */
98
+ async createDevice(params) {
99
+ this.logger.trace(params, 'DevicesRepository::createDevice started with params');
100
+ const novaDataSource = new NovaDataSource(this.novaDataSourceConfig, this.logger);
101
+ const result = await createDevice(novaDataSource, params, this.logger);
102
+ this.logger.trace(result, 'DevicesRepository::createDevice result');
103
+ return result;
104
+ }
105
+ /**
106
+ * Update device
107
+ * @param {UpdateDeviceParams} params containing information to update a device
108
+ * - filters.imei: The imei of the device
109
+ * - filters.status: The status of the device
110
+ * - values.clientId: The client id
111
+ * - values.deviceTypeId: The device type id
112
+ * - values.iccid: The iccid of the device
113
+ * - values.name: The name of the device
114
+ * - values.color: The color of the device
115
+ * - values.icon: The icon of the device
116
+ * - values.status: The status of the device
117
+ * - values.forward: Whether to forward the device
118
+ * - values.description: The description of the device
119
+ * - values.dataSourceTypeId: The data source type id of the device
120
+ * - values.assetCategoryId: The asset category id of the device
121
+ * - values.usageRegion: The usage region of the device
122
+ * - values.modifiedBy: The user who updated the device
123
+ * @returns {Promise<boolean>} Whether the device was updated
124
+ */
125
+ async updateDevice(params) {
126
+ this.logger.trace(params, 'DevicesRepository::updateDevice started with params');
127
+ const novaDataSource = new NovaDataSource(this.novaDataSourceConfig, this.logger);
128
+ const result = await updateDevice(novaDataSource, params, this.logger);
129
+ this.logger.trace({ result }, 'DevicesRepository::updateDevice result');
130
+ return result;
131
+ }
132
+ /**
133
+ * Delete device
134
+ * @param {DeleteDeviceParams} params containing information to delete a device
135
+ * - filters.imei: The imei of the device
136
+ *
137
+ * @returns {Promise<boolean>} Whether the device was deleted
138
+ */
139
+ async deleteDevice(params) {
140
+ this.logger.trace(params, 'DevicesRepository::deleteDevice started with params');
141
+ const novaDataSource = new NovaDataSource(this.novaDataSourceConfig, this.logger);
142
+ const result = await deleteDevice(novaDataSource, params, this.logger);
143
+ this.logger.trace({ result }, 'DevicesRepository::deleteDevice result');
144
+ return result;
145
+ }
146
+ /**
147
+ * Generate device identifier key from device type and device identifier
148
+ * @param {GenerateIdentifierKeyParams} params containing information to generate a device identifier key
149
+ * - deviceTypeId: The device type id
150
+ * - deviceIdentifier: The device identifier
151
+ * @returns {Promise<string>} The generated device identifier key
152
+ */
153
+ async generateDeviceIdentifierKey(params) {
154
+ this.logger.trace(params, 'DevicesRepository::generateDeviceIdentifierKey started with params');
155
+ const novaDataSource = new NovaDataSource(this.novaDataSourceConfig, this.logger);
156
+ const result = await generateDeviceIdentifierKey(novaDataSource, params, this.logger);
157
+ this.logger.trace(result, 'DevicesRepository::generateDeviceIdentifierKey result');
158
+ return result;
159
+ }
160
+ /**
161
+ * Get device types
162
+ * @param {GetDeviceTypesParams} params containing information to get device types
163
+ * - filters.onlyWithRelatedIccidCarrier: Whether to get only device types with iccid carrier
164
+ */
165
+ async getDeviceTypes(params) {
166
+ this.logger.trace(params, 'DevicesRepository::getDeviceTypes started with params');
167
+ const novaDataSource = new NovaDataSource(this.novaDataSourceConfig, this.logger);
168
+ const result = await getDeviceTypes(novaDataSource, params);
169
+ this.logger.trace(result, 'DevicesRepository::getDeviceTypes result');
170
+ return result;
171
+ }
172
+ /**
173
+ * Get ImeiIccidCarrier
174
+ * @param {GetImeiIccidCarrierParams} params containing information to get the ImeiIccidCarrier
175
+ * - filters.imei: The imei of the device
176
+ * - filters.iccid: The iccid of the device
177
+ * @returns {Promise<ImeiIccidCarrier>} The imei iccid carrier
178
+ */
179
+ async getImeiIccidCarrier(params) {
180
+ this.logger.trace(params, 'DevicesRepository::getImeiIccidCarrier started with params');
181
+ const novaDataSource = new NovaDataSource(this.novaDataSourceConfig, this.logger);
182
+ const result = await getImeiIccidCarrier(novaDataSource, params, this.logger);
183
+ this.logger.trace(result, 'DevicesRepository::getImeiIccidCarrier result');
184
+ return result;
185
+ }
186
+ /**
187
+ * Get DeviceTypeByImei
188
+ * @param {GetDeviceTypeByImeiParams} params containing information to get the device type by imei
189
+ * - filters.imei: The imei of the device
190
+ * @returns {Promise<DeviceType>} The device type record of an imei
191
+ */
192
+ async getDeviceTypeByImei(params) {
193
+ this.logger.trace(params, 'DevicesRepository::getDeviceTypeByImei started with params');
194
+ const novaDataSource = new NovaDataSource(this.novaDataSourceConfig, this.logger);
195
+ const result = await getDeviceTypeByImei(novaDataSource, params, this.logger);
196
+ this.logger.trace(result, 'DevicesRepository::getDeviceTypeByImei result');
197
+ return result;
198
+ }
199
+ /**
200
+ * Get ImeiIccidCarriers from a list of imeis
201
+ * @param {GetImeiIccidCarriersParams} params containing information to get the ImeiIccidCarriers
202
+ * - filters.imeis: The imeis of the devices
203
+ * @returns {Promise<ImeiIccidCarrier[]>} The imei iccid carriers
204
+ */
205
+ async getImeiIccidCarriers(params) {
206
+ this.logger.trace(params, 'DevicesRepository::getImeiIccidCarriers started with params');
207
+ const novaDataSource = new NovaDataSource(this.novaDataSourceConfig, this.logger);
208
+ const result = await getImeiIccidCarriers(novaDataSource, params, this.logger);
209
+ this.logger.trace(result, 'DevicesRepository::getImeiIccidCarriers result');
210
+ return result;
211
+ }
212
+ /**
213
+ * Update the ImeiIccidCarrier
214
+ * @param {UpdateImeiIccidCarrierParams} params containing information to update the ImeiIccidCarrier
215
+ * - filters.imei: The imei of the device to update
216
+ * - filters.iccid: The iccid of the device to update
217
+ * - values.carrierId: The carrier id
218
+ * - values.phone: The phone or MSISDN of the device
219
+ * - values.deviceTypeId: The device type id
220
+ * - values.serviceProviderProductId: The service provider product id
221
+ * - values.isValid: Whether the imei iccid carrier is valid
222
+ * - values.realModel: The real model of the device
223
+ * - values.po: The purchase order number of the device
224
+ * - values.outOfInventory: Whether the device is out of inventory
225
+ * - values.apn: The apn of the device
226
+ *
227
+ * @returns {Promise<boolean>} Whether the imei iccid carrier was updated
228
+ */
229
+ async updateImeiIccidCarrier(params) {
230
+ this.logger.trace(params, 'DevicesRepository::updateImeiIccidCarrier started with params');
231
+ const novaDataSource = new NovaDataSource(this.novaDataSourceConfig, this.logger);
232
+ const result = await updateImeiIccidCarrier(novaDataSource, params, this.logger);
233
+ this.logger.trace({ result }, 'DevicesRepository::updateImeiIccidCarrier result');
234
+ return result;
235
+ }
236
+ /**
237
+ * Get a ClientDeviceSetting
238
+ * @param {GetClientDeviceSettingParams} params containing information to get a ClientDeviceSetting
239
+ * - filters.imei: The imei of the device
240
+ * - filters.clientId: The client id
241
+ * @returns {Promise<ClientDeviceSetting>} The ClientDeviceSetting
242
+ */
243
+ async getClientDeviceSetting(params) {
244
+ this.logger.trace(params, 'DevicesRepository::getClientDeviceSetting with params');
245
+ const novaDataSource = new NovaDataSource(this.novaDataSourceConfig, this.logger);
246
+ const result = await getClientDeviceSetting(novaDataSource, params, this.logger);
247
+ this.logger.info(result, 'DevicesRepository::getClientDeviceSetting result');
248
+ return result;
249
+ }
250
+ /**
251
+ * Get a list of ClientDeviceSettings with filters
252
+ * @param {GetClientDeviceSettingsParams} params containing information to get ClientDeviceSettings
253
+ * - filters.clientId: The client id
254
+ * @returns {Promise<ClientDeviceSetting[]>} An array of ClientDeviceSettings matching the filters
255
+ */
256
+ async getClientDeviceSettings(params) {
257
+ this.logger.trace(params, 'DevicesRepository::getClientDeviceSettings started with params');
258
+ const novaDataSource = new NovaDataSource(this.novaDataSourceConfig, this.logger);
259
+ const result = await getClientDeviceSettings(novaDataSource, params, this.logger);
260
+ this.logger.trace(result, 'DevicesRepository::getClientDeviceSettings result');
261
+ return result;
262
+ }
263
+ /**
264
+ * Create a ClientDeviceSetting
265
+ * @param {CreateClientDeviceSettingParams} params containing information to create a ClientDeviceSetting
266
+ * - values.imei: The imei of the device
267
+ * - values.clientId: The client id
268
+ * - values.generateTrips: Whether to generate trips
269
+ * - values.movingPingFrequency: The moving ping frequency
270
+ * - values.stoppedPingFrequency: The stopped ping frequency
271
+ * - values.fixedStatus: The fixed status
272
+ * - values.stopThresholdMinutes: The threshold in minutes to consider that the device is stopped
273
+ * - values.offlineThresholdMinutes: The threshold in minutes to consider that the device is offline
274
+ * - values.movementThresholdSpeed: The threshold for the speed to consider that the device is moving
275
+ * - values.externalBatteryInformation: The external battery information
276
+ * @returns {Promise<ClientDeviceSetting>} The created ClientDeviceSetting
277
+ */
278
+ async createClientDeviceSetting(params) {
279
+ this.logger.trace(params, 'DevicesRepository::createClientDeviceSetting started with params');
280
+ const novaDataSource = new NovaDataSource(this.novaDataSourceConfig, this.logger);
281
+ const result = await createClientDeviceSetting(novaDataSource, params, this.logger);
282
+ this.logger.trace(result, 'DevicesRepository::createClientDeviceSetting result');
283
+ return result;
284
+ }
285
+ /**
286
+ * Update a ClientDeviceSetting
287
+ * @param {UpdateClientDeviceSettingParams} params containing information to update a ClientDeviceSetting
288
+ * - filters.imei: The imei of the device
289
+ * - filters.clientId: The client id
290
+ * - values.generateTrips: Whether to generate trips
291
+ * - values.movingPingFrequency: The moving ping frequency
292
+ * - values.stoppedPingFrequency: The stopped ping frequency
293
+ * - values.fixedStatus: The fixed status
294
+ * - values.stopThresholdMinutes: The threshold in minutes to consider that the device is stopped
295
+ * - values.offlineThresholdMinutes: The threshold in minutes to consider that the device is offline
296
+ * - values.movementThresholdSpeed: The threshold for the speed to consider that the device is moving
297
+ * - values.externalBatteryInformation: The external battery information
298
+ * @returns {Promise<boolean>} Whether the ClientDeviceSetting was updated
299
+ */
300
+ async updateClientDeviceSetting(params) {
301
+ this.logger.trace(params, 'DevicesRepository::updateClientDeviceSetting started with params');
302
+ const novaDataSource = new NovaDataSource(this.novaDataSourceConfig, this.logger);
303
+ const result = await updateClientDeviceSetting(novaDataSource, params, this.logger);
304
+ this.logger.trace({ result }, 'DevicesRepository::updateClientDeviceSetting result');
305
+ return result;
306
+ }
307
+ /**
308
+ * Get a list of DeviceTypeModel with the count of associated devices, ordered by device count
309
+ * @param {GetDeviceTypesModelsOrderedByDeviceCountParams} params containing information to get DeviceTypeModelWithDeviceCount
310
+ * - filters.deviceStatus: The device status to filter by, optional. If not provided, all devices will be counted
311
+ */
312
+ async getDeviceTypesModelsOrderedByDeviceCount(params) {
313
+ this.logger.trace(params, 'DevicesRepository::getDeviceTypesOrderedByDeviceCount started with params');
314
+ const novaDataSource = new NovaDataSource(this.novaDataSourceConfig, this.logger);
315
+ const result = await getDeviceTypesModelsOrderedByDeviceCount(novaDataSource, params);
316
+ this.logger.trace({ result }, 'DevicesRepository::getDeviceTypesOrderedByDeviceCount result');
317
+ return result;
318
+ }
319
+ /**
320
+ * Get the device custom configuration
321
+ * @param {GetDeviceCustomConfigParams} params containing information to get the device custom configuration
322
+ * - filters.clientId: The client id
323
+ * - filters.imei: The imei of the device
324
+ * - filters.po: The purchase order number of the device
325
+ * @returns The device custom configurations if found, empty array otherwise
326
+ */
327
+ async getDeviceCustomConfigs(params) {
328
+ this.logger.trace(params, 'DevicesRepository::getDeviceCustomConfig started with params');
329
+ const novaDataSource = new NovaDataSource(this.novaDataSourceConfig, this.logger);
330
+ const result = await getDeviceCustomConfigs(novaDataSource, params, this.logger);
331
+ this.logger.trace({ result }, 'DevicesRepository::getDeviceCustomConfig result');
332
+ return result;
333
+ }
334
+ /**
335
+ * Create a device replacement
336
+ * @param {CreateDeviceReplacementParams} params containing information to create a device replacement
337
+ * - id: The id of the device replacement, optional
338
+ * - imeiOld: The old imei of the device, required
339
+ * - imeiNew: The new imei of the device, required
340
+ * - iccidOld: The old iccid of the device, required
341
+ * - iccidNew: The new iccid of the device, required
342
+ * - userId: The user id, required
343
+ * - clientId: The client id, required
344
+ * @returns {Promise<DeviceReplacement>} The created device replacement
345
+ */
346
+ async createDeviceReplacement(params) {
347
+ this.logger.trace(params, 'DevicesRepository::createDeviceReplacement started with params');
348
+ const novaDataSource = new NovaDataSource(this.novaDataSourceConfig, this.logger);
349
+ const result = await createDeviceReplacement(novaDataSource, params, this.logger);
350
+ this.logger.trace(result, 'DevicesRepository::createDeviceReplacement result');
351
+ return result;
352
+ }
353
+ /**
354
+ * Get the iccid status for a given iccid
355
+ * @param {GetIccidStatusParams} params containing information to get the iccid status
356
+ * - filters.iccid: The iccid of the device
357
+ * @returns The iccid status
358
+ */
359
+ async getIccidStatus(params) {
360
+ this.logger.trace(params, 'DevicesRepository::getIccidStatus started with params');
361
+ const novaDataSource = new NovaDataSource(this.novaDataSourceConfig, this.logger);
362
+ const result = await getIccidStatus(novaDataSource, params, this.logger);
363
+ this.logger.trace(result, 'DevicesRepository::getIccidStatus result');
364
+ return result;
365
+ }
366
+ /**
367
+ * Update the iccid status for a given iccid
368
+ * @param {UpdateIccidStatusParams} params containing information to update the iccid status
369
+ * - filters.iccid: The iccid of the device
370
+ * - values.status: The status of the iccid
371
+ * - values.processing: Whether the iccid is processing
372
+ * - values.carrierFound: Whether the carrier was found
373
+ * @returns Whether the iccid status was updated
374
+ */
375
+ async updateIccidStatus(params) {
376
+ this.logger.trace(params, 'DevicesRepository::updateIccidStatus started with params');
377
+ const novaDataSource = new NovaDataSource(this.novaDataSourceConfig, this.logger);
378
+ const result = await updateIccidStatus(novaDataSource, params, this.logger);
379
+ this.logger.trace({ result }, 'DevicesRepository::updateIccidStatus result');
380
+ return result;
381
+ }
382
+ /**
383
+ * Get the canceled devices with active sim cards
384
+ * @param {GetCanceledDevicesWithActiveSimCardsParams} params containing information to get the canceled devices with active sim cards
385
+ * - filters.lastAnalyzedDeviceId: The last analyzed device id
386
+ * - pagingOptions.limit: The amount of devices to get
387
+ * @returns The canceled devices with active sim cards
388
+ */
389
+ async getCanceledDevicesWithActiveSimCards(params) {
390
+ this.logger.trace(params, 'DevicesRepository::getCanceledDevicesWithActiveSimCards started with params');
391
+ const novaDataSource = new NovaDataSource(this.novaDataSourceConfig, this.logger);
392
+ const result = await getCanceledDevicesWithActiveSimCards(novaDataSource, params, this.logger);
393
+ this.logger.trace(result, 'DevicesRepository::getCanceledDevicesWithActiveSimCards result');
394
+ return result;
395
+ }
396
+ /**
397
+ * Get the carrier status for all devices updated before a given date
398
+ * @param {GetCarrierStatusUpdatedBeforeParams} params containing information to get the carrier status
399
+ * - filters.beforeDate: The date to compare
400
+ * - pagingOptions.limit: The amount of devices to get
401
+ * @returns The carrier status for devices updated before a given date
402
+ */
403
+ async getCarrierStatusUpdatedBefore(params) {
404
+ this.logger.trace(params, 'DevicesRepository::getCarrierStatusUpdatedBefore started with params');
405
+ const novaDataSource = new NovaDataSource(this.novaDataSourceConfig, this.logger);
406
+ const result = await getCarrierStatusUpdatedBefore(novaDataSource, params, this.logger);
407
+ this.logger.trace(result, 'DevicesRepository::getCarrierStatusUpdatedBefore result');
408
+ return result;
409
+ }
410
+ /**
411
+ * Upsert the iccid status for a given iccid
412
+ * @param {UpsertIccidStatusParams} params containing information to upsert the iccid status
413
+ * - iccid: The iccid of the device
414
+ * - status: The status of the iccid
415
+ * - carrierFound: The carrier found
416
+ * @returns Whether the iccid status was upserted
417
+ */
418
+ async upsertIccidStatus(params) {
419
+ this.logger.trace(params, 'DevicesRepository::upsertIccidStatus started with params');
420
+ const novaDataSource = new NovaDataSource(this.novaDataSourceConfig, this.logger);
421
+ const result = await upsertIccidStatus(novaDataSource, params, this.logger);
422
+ this.logger.trace({ result }, 'DevicesRepository::upsertIccidStatus result');
423
+ return result;
424
+ }
425
+ /**
426
+ * Get device with users info
427
+ * @param {GetDeviceWithUsersInfoParams} params containing information to get device with users info
428
+ * - filters.imei: The imei of the device
429
+ * @returns The device with users info
430
+ */
431
+ async getDeviceWithUsersInfo(params) {
432
+ this.logger.trace(params, 'DevicesRepository::getDeviceWithUsersInfo started with params');
433
+ const novaDataSource = new NovaDataSource(this.novaDataSourceConfig, this.logger);
434
+ const result = await getDeviceWithUsersInfo(novaDataSource, params, this.logger);
435
+ this.logger.trace(result, 'DevicesRepository::getDeviceWithUsersInfo result');
436
+ return result;
437
+ }
438
+ /**
439
+ * Create a device type
440
+ * @param {CreateDeviceTypeParams} params containing information to create a device type
441
+ * @returns {Promise<DeviceType>} The created device type
442
+ */
443
+ async createDeviceType(params) {
444
+ this.logger.trace(params, 'DevicesRepository::createDeviceType started with params');
445
+ const novaDataSource = new NovaDataSource(this.novaDataSourceConfig, this.logger);
446
+ const result = await createDeviceType(novaDataSource, params, this.logger);
447
+ this.logger.trace(result, 'DevicesRepository::createDeviceType result');
448
+ return result;
449
+ }
450
+ /**
451
+ * Update a device type
452
+ * @param {UpdateDeviceTypeParams} params containing information to update a device type
453
+ * - filters.id: The id of the device type
454
+ * - values: The values to update. At least one field is required
455
+ * @returns {Promise<boolean>} Whether the device type was updated
456
+ */
457
+ async updateDeviceType(params) {
458
+ this.logger.trace(params, 'DevicesRepository::updateDeviceType started with params');
459
+ const novaDataSource = new NovaDataSource(this.novaDataSourceConfig, this.logger);
460
+ const result = await updateDeviceType(novaDataSource, params, this.logger);
461
+ this.logger.trace({ result }, 'DevicesRepository::updateDeviceType result');
462
+ return result;
463
+ }
464
+ }
@@ -0,0 +1,38 @@
1
+ import { ClientDeviceSetting } from '../../entities';
2
+ export const updateClientDeviceSetting = async (novaDataSource, params, logger) => {
3
+ if (!params?.filters?.imei || !params?.filters?.clientId) {
4
+ logger.warn({ params }, 'DevicesRepository::updateClientDeviceSetting missing required parameters');
5
+ return false;
6
+ }
7
+ if (params?.values?.generateTrips == null &&
8
+ !params?.values?.movingPingFrequency &&
9
+ !params?.values?.stoppedPingFrequency &&
10
+ !params?.values?.fixedStatus &&
11
+ !params?.values?.stopThresholdMinutes &&
12
+ !params?.values?.offlineThresholdMinutes &&
13
+ !params?.values?.movementThresholdSpeed &&
14
+ params?.values?.externalBatteryInformation == null) {
15
+ logger.warn({ params }, 'DevicesRepository::updateClientDeviceSetting missing required parameters');
16
+ return false;
17
+ }
18
+ return novaDataSource.safeQuery(async (dataSource) => {
19
+ const clientDeviceSettingRepository = dataSource.getRepository(ClientDeviceSetting);
20
+ const queryBuilder = clientDeviceSettingRepository
21
+ .createQueryBuilder()
22
+ .update(ClientDeviceSetting)
23
+ .set({
24
+ generateTrips: params.values.generateTrips,
25
+ movingPingFrequency: params.values.movingPingFrequency,
26
+ stoppedPingFrequency: params.values.stoppedPingFrequency,
27
+ fixedStatus: params.values.fixedStatus,
28
+ stopThresholdMinutes: params.values.stopThresholdMinutes,
29
+ offlineThresholdMinutes: params.values.offlineThresholdMinutes,
30
+ movementThresholdSpeed: params.values.movementThresholdSpeed,
31
+ externalBatteryInformation: params.values.externalBatteryInformation,
32
+ })
33
+ .where('imei = :imei', { imei: params.filters.imei })
34
+ .andWhere('clientId = :clientId', { clientId: params.filters.clientId });
35
+ const result = await queryBuilder.execute();
36
+ return result.affected > 0;
37
+ }, 'DevicesRepository::updateClientDeviceSetting');
38
+ };
@@ -0,0 +1,56 @@
1
+ import { Device } from '../../entities';
2
+ import { generateDeviceIdentifierKey } from './generateDeviceIdentifierKey';
3
+ export const updateDevice = async (novaDataSource, params, logger) => {
4
+ // imei is required
5
+ if (!params?.filters?.imei) {
6
+ logger.warn({ params }, 'DevicesRepository::updateDevice missing required parameters');
7
+ return false;
8
+ }
9
+ // at least one field to update is required
10
+ if (!params?.values?.clientId &&
11
+ !params?.values?.deviceTypeId &&
12
+ !params?.values?.iccid &&
13
+ !params?.values?.name &&
14
+ !params?.values?.color &&
15
+ !params?.values?.icon &&
16
+ !params?.values?.status &&
17
+ params?.values?.forward == null &&
18
+ !params?.values?.description &&
19
+ !params?.values?.dataSourceTypeId &&
20
+ !params?.values?.assetCategoryId &&
21
+ !params?.values?.usageRegion &&
22
+ !params?.values?.btmac) {
23
+ logger.warn({ params }, 'DevicesRepository::updateDevice missing required parameters');
24
+ return false;
25
+ }
26
+ let identifierKey = undefined;
27
+ if (params.values.deviceTypeId) {
28
+ // Note: imei and identifier are the same for now. We need to change this when identifier replaces imei
29
+ const identifier = params.filters.imei;
30
+ identifierKey = await generateDeviceIdentifierKey(novaDataSource, {
31
+ deviceTypeId: params.values.deviceTypeId,
32
+ deviceIdentifier: identifier,
33
+ }, logger);
34
+ if (!identifierKey) {
35
+ return false;
36
+ }
37
+ }
38
+ return novaDataSource.safeQuery(async (dataSource) => {
39
+ const devicesRepository = dataSource.getRepository(Device);
40
+ const now = new Date();
41
+ let queryBuilder = devicesRepository
42
+ .createQueryBuilder()
43
+ .update(Device)
44
+ .set({
45
+ ...params.values,
46
+ identifierKey,
47
+ modifiedAt: now,
48
+ })
49
+ .where('imei = :imei', { imei: params.filters.imei });
50
+ if (params.filters.status) {
51
+ queryBuilder = queryBuilder.andWhere('status = :status', { status: params.filters.status });
52
+ }
53
+ const result = await queryBuilder.execute();
54
+ return result.affected > 0;
55
+ }, 'DevicesRepository::updateDevice');
56
+ };