@spytecgps/nova-orm 0.0.223 → 0.0.225

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 (391) 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 +110 -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.d.ts +2 -2
  369. package/dist/types/tasks.js +1 -0
  370. package/dist/types/trip.js +29 -0
  371. package/dist/types/user.js +1 -0
  372. package/dist/types/userActivations.js +1 -0
  373. package/dist/types/userAppFeedback.js +1 -0
  374. package/dist/types/userAppIncidents.js +1 -0
  375. package/dist/types/userConfigurations.js +1 -0
  376. package/dist/types/userDataDeletionRequests.js +1 -0
  377. package/dist/types/userInvitations.js +1 -0
  378. package/dist/types/userRatingRequests.js +1 -0
  379. package/dist/types/userRegistrationAttempts.js +1 -0
  380. package/dist/utils/anyAttributeHasValue.js +20 -0
  381. package/dist/utils/anyAttributeIsNull.js +12 -0
  382. package/dist/utils/boolToNumberTransformer.js +23 -0
  383. package/dist/utils/consoleLogger.js +42 -0
  384. package/dist/utils/filterTools.js +299 -0
  385. package/dist/utils/mapRawEntityToEntity.js +12 -0
  386. package/dist/utils/queryLogger.js +48 -0
  387. package/dist/utils/randomizer.js +39 -0
  388. package/dist/utils/stringToDateTransformer.js +16 -0
  389. package/dist/utils/uuidHelpers.js +30 -0
  390. package/package.json +10 -8
  391. package/dist/index.js.LICENSE.txt +0 -41
@@ -0,0 +1,34 @@
1
+ import { UserConfiguration } from '../../entities/userConfiguration';
2
+ import { uuidStringToBinaryBuffer } from '../../utils/uuidHelpers';
3
+ export const createUserConfiguration = async (novaDataSource, params, logger) => {
4
+ if (!params?.userId || params?.isMetric == null) {
5
+ logger.warn({ params }, 'UserConfigurationsRepository::createUserConfiguration - missing required parameters');
6
+ return null;
7
+ }
8
+ const userIdBinaryBuffer = uuidStringToBinaryBuffer(params?.userId);
9
+ if (!userIdBinaryBuffer?.length) {
10
+ logger.warn({ params }, 'UserConfigurationsRepository::createUserConfiguration - user id should be a valid UUID');
11
+ return null;
12
+ }
13
+ return novaDataSource.safeQuery(async (dataSource) => {
14
+ const userConfigurationsRepository = dataSource.getRepository(UserConfiguration);
15
+ const now = new Date();
16
+ const newUserConfiguration = {
17
+ id: params?.id,
18
+ userId: userIdBinaryBuffer,
19
+ isMetric: params?.isMetric,
20
+ timezone: params?.timezone,
21
+ defaultMapLayer: params?.defaultMapLayer,
22
+ speedUnits: params?.speedUnits,
23
+ distanceUnits: params?.distanceUnits,
24
+ alertsNotificationsOn: params?.alertsNotificationsOn != null ? params?.alertsNotificationsOn : true,
25
+ dataSourceTypeId: params?.dataSourceTypeId,
26
+ homepage: params?.homepage,
27
+ temperatureUnits: params?.temperatureUnits,
28
+ addressFormat: params?.addressFormat,
29
+ createdAt: now,
30
+ modifiedAt: now,
31
+ };
32
+ return await userConfigurationsRepository.save(newUserConfiguration);
33
+ }, 'UserConfigurationsRepository::createUserConfiguration');
34
+ };
@@ -0,0 +1,17 @@
1
+ import { DeviceAlertConfiguration } from '../../entities';
2
+ export const deleteDeviceAlertTimeWindows = async (novaDataSource, params, logger) => {
3
+ // userId filter is required
4
+ if (!params?.filters?.configId) {
5
+ logger.warn({ params }, 'UserConfigurationsRepository::deleteDeviceAlertTimeWindows - missing required parameters');
6
+ return false;
7
+ }
8
+ return novaDataSource.safeQuery(async (dataSource) => {
9
+ const userConfigurationsRepository = dataSource.getRepository(DeviceAlertConfiguration);
10
+ const queryBuilder = userConfigurationsRepository
11
+ .createQueryBuilder()
12
+ .delete()
13
+ .where('id = :id', { id: params?.filters?.configId });
14
+ const result = await queryBuilder.execute();
15
+ return result.affected > 0;
16
+ }, 'UserConfigurationsRepository::deleteDeviceAlertTimeWindows');
17
+ };
@@ -0,0 +1,24 @@
1
+ import { UserAlertConfiguration } from '../../entities';
2
+ import { uuidStringToBinaryBuffer } from '../../utils/uuidHelpers';
3
+ export const deleteUserAlertConfigurations = async (novaDataSource, params, logger) => {
4
+ // userId filter is required
5
+ if (!params?.filters?.userId) {
6
+ logger.warn({ params }, 'UserConfigurationsRepository::deleteUserAlertConfigurations - missing required parameters');
7
+ return false;
8
+ }
9
+ const userIdBinaryBuffer = uuidStringToBinaryBuffer(params?.filters?.userId);
10
+ // at least one filter is required
11
+ if (!userIdBinaryBuffer) {
12
+ logger.warn({ userId: params?.filters?.userId }, 'UserConfigurationsRepository::deleteUserAlertConfigurations - user id should be a valid UUID');
13
+ return false;
14
+ }
15
+ return novaDataSource.safeQuery(async (dataSource) => {
16
+ const userConfigurationsRepository = dataSource.getRepository(UserAlertConfiguration);
17
+ const queryBuilder = userConfigurationsRepository
18
+ .createQueryBuilder()
19
+ .delete()
20
+ .where('userId = :userId', { userId: userIdBinaryBuffer });
21
+ const result = await queryBuilder.execute();
22
+ return result.affected > 0;
23
+ }, 'UserConfigurationsRepository::deleteUserAlertConfigurations');
24
+ };
@@ -0,0 +1,17 @@
1
+ import { AlertTimeWindowConfiguration } from '../../entities';
2
+ export const deleteUserAlertTimeWindows = async (novaDataSource, params, logger) => {
3
+ // userId filter is required
4
+ if (!params?.filters?.configId) {
5
+ logger.warn({ params }, 'UserConfigurationsRepository::deleteUserAlertTimeWindows - missing required parameters');
6
+ return false;
7
+ }
8
+ return novaDataSource.safeQuery(async (dataSource) => {
9
+ const userConfigurationsRepository = dataSource.getRepository(AlertTimeWindowConfiguration);
10
+ const queryBuilder = userConfigurationsRepository
11
+ .createQueryBuilder()
12
+ .delete()
13
+ .where('id = :id', { id: params?.filters?.configId });
14
+ const result = await queryBuilder.execute();
15
+ return result.affected > 0;
16
+ }, 'UserConfigurationsRepository::deleteUserAlertTimeWindows');
17
+ };
@@ -0,0 +1,23 @@
1
+ import { UserConfiguration } from '../../entities/userConfiguration';
2
+ import { uuidStringToBinaryBuffer } from '../../utils/uuidHelpers';
3
+ export const deleteUserConfiguration = async (novaDataSource, params, logger) => {
4
+ // userId filter is required
5
+ if (!params?.filters?.userId) {
6
+ logger.warn({ params }, 'UserConfigurationsRepository::deleteUserConfiguration - missing required parameters');
7
+ return false;
8
+ }
9
+ const userIdBinaryBuffer = uuidStringToBinaryBuffer(params?.filters?.userId);
10
+ if (!userIdBinaryBuffer) {
11
+ logger.warn({ userId: params?.filters?.userId }, 'UserConfigurationsRepository::deleteUserConfiguration - user id should be a valid UUID');
12
+ return false;
13
+ }
14
+ return novaDataSource.safeQuery(async (dataSource) => {
15
+ const userConfigurationsRepository = dataSource.getRepository(UserConfiguration);
16
+ const queryBuilder = userConfigurationsRepository
17
+ .createQueryBuilder()
18
+ .delete()
19
+ .where('userId = :userId', { userId: userIdBinaryBuffer });
20
+ const result = await queryBuilder.execute();
21
+ return result.affected > 0;
22
+ }, 'UserConfigurationsRepository::deleteUserConfiguration');
23
+ };
@@ -0,0 +1,43 @@
1
+ import { DeviceAlertConfiguration } from '../../entities';
2
+ import { uuidStringToBinaryBuffer } from '../../utils/uuidHelpers';
3
+ export const getDeviceAlertTimeWindows = 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::getDeviceAlertTimeWindows - missing required parameters');
10
+ return [];
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 userAlertTimeWindowsRepository = dataSource.getRepository(DeviceAlertConfiguration);
18
+ let queryBuilder = userAlertTimeWindowsRepository.createQueryBuilder('deviceAlertConfiguration');
19
+ if (params?.filters?.configId) {
20
+ queryBuilder = queryBuilder.andWhere('deviceAlertConfiguration.id = :id', {
21
+ id: params.filters.configId,
22
+ });
23
+ }
24
+ if (params?.filters?.imei) {
25
+ queryBuilder = queryBuilder.andWhere('deviceAlertConfiguration.imei = :imei', {
26
+ imei: params.filters.imei,
27
+ });
28
+ }
29
+ if (params?.filters?.clientId) {
30
+ queryBuilder = queryBuilder.andWhere('deviceAlertConfiguration.clientId = :clientId', {
31
+ clientId: params.filters.clientId,
32
+ });
33
+ }
34
+ if (userIdBinaryBuffer) {
35
+ queryBuilder = queryBuilder.andWhere('deviceAlertConfiguration.userId = :userId', {
36
+ userId: userIdBinaryBuffer,
37
+ });
38
+ }
39
+ queryBuilder = queryBuilder.orderBy('deviceAlertConfiguration.alertTypeId');
40
+ const result = await queryBuilder.getMany();
41
+ return result;
42
+ }, 'UserConfigurationsRepository::getDeviceAlertTimeWindows');
43
+ };
@@ -0,0 +1,25 @@
1
+ import { UserAlertConfiguration } from '../../entities';
2
+ import { uuidStringToBinaryBuffer } from '../../utils/uuidHelpers';
3
+ export const getUserAlertConfigurations = async (novaDataSource, params, logger) => {
4
+ // userId filter is required
5
+ if (!params?.filters?.userId) {
6
+ logger.warn({ params }, 'UserConfigurationsRepository::getUserAlertConfigurations - missing required parameters');
7
+ return [];
8
+ }
9
+ const userIdBinaryBuffer = uuidStringToBinaryBuffer(params?.filters?.userId);
10
+ if (!userIdBinaryBuffer) {
11
+ logger.warn({ params }, 'UserConfigurationsRepository::getUserAlertConfigurations - user id should be a valid UUID');
12
+ return [];
13
+ }
14
+ return novaDataSource.safeQuery(async (dataSource) => {
15
+ const userAlertConfigurationsRepository = dataSource.getRepository(UserAlertConfiguration);
16
+ let queryBuilder = userAlertConfigurationsRepository.createQueryBuilder('userAlertConfiguration');
17
+ queryBuilder = queryBuilder.innerJoinAndSelect('userAlertConfiguration.alertType', 'alertType', !params.filters.includeBeta ? `alertType.stage = 'prod'` : undefined);
18
+ queryBuilder = queryBuilder.where('userAlertConfiguration.userId = :userId', {
19
+ userId: userIdBinaryBuffer,
20
+ });
21
+ queryBuilder = queryBuilder.orderBy('userAlertConfiguration.alertTypeId');
22
+ const result = await queryBuilder.getMany();
23
+ return result;
24
+ }, 'UserConfigurationsRepository::getUserAlertConfigurations');
25
+ };
@@ -0,0 +1,35 @@
1
+ import { AlertTimeWindowConfiguration } from '../../entities';
2
+ import { uuidStringToBinaryBuffer } from '../../utils/uuidHelpers';
3
+ export const getUserAlertTimeWindows = async (novaDataSource, params, logger) => {
4
+ // userId filter is required
5
+ if (!params?.filters?.userId && !params?.filters?.clientId && !params?.filters?.configId) {
6
+ logger.warn({ params }, 'UserConfigurationsRepository::getUserAlertTimeWindows - missing required parameters');
7
+ return [];
8
+ }
9
+ return novaDataSource.safeQuery(async (dataSource) => {
10
+ const userAlertTimeWindowsRepository = dataSource.getRepository(AlertTimeWindowConfiguration);
11
+ let queryBuilder = userAlertTimeWindowsRepository.createQueryBuilder('alertTimeWindowConfiguration');
12
+ if (params?.filters?.configId) {
13
+ queryBuilder = queryBuilder.where('alertTimeWindowConfiguration.id = :id', {
14
+ id: params.filters.configId,
15
+ });
16
+ }
17
+ if (params?.filters?.userId) {
18
+ const userIdBinaryBuffer = uuidStringToBinaryBuffer(params?.filters?.userId);
19
+ if (!userIdBinaryBuffer) {
20
+ return [];
21
+ }
22
+ queryBuilder = queryBuilder.where('alertTimeWindowConfiguration.userId = :userId', {
23
+ userId: userIdBinaryBuffer,
24
+ });
25
+ }
26
+ if (params?.filters?.clientId) {
27
+ queryBuilder = queryBuilder.where('alertTimeWindowConfiguration.clientId = :clientId', {
28
+ clientId: params.filters.clientId,
29
+ });
30
+ }
31
+ queryBuilder = queryBuilder.orderBy('alertTimeWindowConfiguration.alertId');
32
+ const result = await queryBuilder.getMany();
33
+ return result;
34
+ }, 'UserConfigurationsRepository::getUserAlertTimeWindows');
35
+ };
@@ -0,0 +1,31 @@
1
+ import { UserConfiguration } from '../../entities';
2
+ import { uuidStringToBinaryBuffer } from '../../utils/uuidHelpers';
3
+ export const getUserConfigurations = async (novaDataSource, params, logger) => {
4
+ // userId filter is required
5
+ if (!params?.filters?.clientId && !params?.filters?.userId) {
6
+ logger.warn({ params }, 'UserConfigurationsRepository::getUserConfigurations - missing required parameters');
7
+ return [];
8
+ }
9
+ const userIdBinaryBuffer = uuidStringToBinaryBuffer(params?.filters?.userId);
10
+ if (params?.filters?.userId && !userIdBinaryBuffer) {
11
+ logger.warn({ params }, 'UserConfigurationsRepository::getUserConfigurations - user id should be a valid UUID');
12
+ return [];
13
+ }
14
+ return novaDataSource.safeQuery(async (dataSource) => {
15
+ const userConfigurationsRepository = dataSource.getRepository(UserConfiguration);
16
+ let queryBuilder = userConfigurationsRepository.createQueryBuilder('userConfiguration');
17
+ if (params.filters.clientId) {
18
+ queryBuilder = queryBuilder.innerJoin('userConfiguration.user', 'user');
19
+ queryBuilder = queryBuilder.andWhere('user.clientId = :clientId', {
20
+ clientId: params.filters.clientId,
21
+ });
22
+ }
23
+ if (userIdBinaryBuffer) {
24
+ queryBuilder = queryBuilder.andWhere('userConfiguration.userId = :userId', {
25
+ userId: userIdBinaryBuffer,
26
+ });
27
+ }
28
+ const result = await queryBuilder.getMany();
29
+ return result;
30
+ }, 'UserConfigurationsRepository::getUserConfigurations');
31
+ };
@@ -0,0 +1,298 @@
1
+ import { NovaDataSource } from '../../novaDataSource';
2
+ import { BaseRepository } from '../baseRepository';
3
+ import { bulkCreateUserAlertConfigurations } from './bulkCreateUserAlertConfigurations';
4
+ import { createDeviceAlertTimeWindows } from './createDeviceAlertTimeWindows';
5
+ import { createUserAlertTimeWindows } from './createUserAlertTimeWindows';
6
+ import { createUserConfiguration } from './createUserConfiguration';
7
+ import { deleteDeviceAlertTimeWindows } from './deleteDeviceAlertTimeWindows';
8
+ import { deleteUserAlertConfigurations } from './deleteUserAlertConfigurations';
9
+ import { deleteUserAlertTimeWindows } from './deleteUserAlertTimeWindows';
10
+ import { deleteUserConfiguration } from './deleteUserConfiguration';
11
+ import { getDeviceAlertTimeWindows } from './getDeviceAlertTimeWindows';
12
+ import { getUserAlertConfigurations } from './getUserAlertConfigurations';
13
+ import { getUserAlertTimeWindows } from './getUserAlertTimeWindows';
14
+ import { getUserConfigurations } from './getUserConfigurations';
15
+ import { updateDeviceAlertTimeWindows } from './updateDeviceAlertTimeWindows';
16
+ import { updateUserAlertConfigurations } from './updateUserAlertConfigurations';
17
+ import { updateUserAlertTimeWindows } from './updateUserAlertTimeWindows';
18
+ import { updateUserConfiguration } from './updateUserConfiguration';
19
+ export class UserConfigurationsRepository extends BaseRepository {
20
+ /**
21
+ * Get user configurations
22
+ * @param {GetUserConfigurationsParams} params containing information to get user configurations
23
+ * - filters.clientId: The client id to obtain all user configurations from that client
24
+ * - filters.userId: The user id to obtain all user configurations from that user
25
+ * @returns The user configurations
26
+ */
27
+ async getUserConfigurations(params) {
28
+ this.logger.trace(params, 'UserConfigurationsRepository::getUserConfigurations started with params');
29
+ const novaDataSource = new NovaDataSource(this.novaDataSourceConfig, this.logger);
30
+ const result = await getUserConfigurations(novaDataSource, params, this.logger);
31
+ this.logger.trace(result, 'UserConfigurationsRepository::getUserConfigurations result');
32
+ return result;
33
+ }
34
+ /**
35
+ * Create user configuration
36
+ * @param {CreateUserConfigurationParams} params containing information to create a user configuration
37
+ * - id: The user configuration id, optional. If not provided, it will be generated
38
+ * - userId: The user id, required
39
+ * - isMetric: Whether is metric, required
40
+ * - timezone: The user timezone, optional
41
+ * - defaultMapLayer: The user default map layer, optional
42
+ * - speedUnits: The user speed units, optional
43
+ * - distanceUnits: The user distance units, optional
44
+ * - alertsNotificationsOn: The user alerts notifications on, optional. If not provided, it will be true
45
+ * - dataSourceTypeId: The user data source type id, optional
46
+ * - homepage: The user homepage, optional
47
+ * - temperatureUnits: The user temperature units, optional
48
+ * - addressFormat: The user address format, optional
49
+ * @returns The created user configuration
50
+ */
51
+ async createUserConfiguration(params) {
52
+ this.logger.trace(params, 'UserConfigurationsRepository::createUserConfiguration started with params');
53
+ const novaDataSource = new NovaDataSource(this.novaDataSourceConfig, this.logger);
54
+ const result = await createUserConfiguration(novaDataSource, params, this.logger);
55
+ this.logger.trace(result, 'UserConfigurationsRepository::createUserConfiguration result');
56
+ return result;
57
+ }
58
+ /**
59
+ * Create user alert time windows
60
+ * @param {CreateUserAlertTimeWindowsParams} params containing information to create a user alert time windows
61
+ * - id: The user alert time windows id, optional. If not provided, it will be generated
62
+ * - clientId: The client id, required
63
+ * - userId: The user id, required
64
+ * - alertConfigurationId: The alert configuration id, optional
65
+ * - daysOfTheWeek: The days of the week, required. It's a string of 7 characters, each one representing a day of the week, starting with Sunday. 1 means that the day is selected, 0 means that the day is not selected
66
+ * - startTime: The start time, required
67
+ * - endTime: The end time, required
68
+ * @returns {AlertTimeWindowConfiguration} The created user alert time windows
69
+ */
70
+ async createUserAlertTimeWindows(params) {
71
+ this.logger.trace(params, 'UserConfigurationsRepository::createUserAlertTimeWindows started with params');
72
+ const novaDataSource = new NovaDataSource(this.novaDataSourceConfig, this.logger);
73
+ const result = await createUserAlertTimeWindows(novaDataSource, params, this.logger);
74
+ this.logger.trace(result, 'UserConfigurationsRepository::createUserAlertTimeWindows result');
75
+ return result;
76
+ }
77
+ /**
78
+ * Create device alert time windows
79
+ * @param {CreateDeviceAlertTimeWindowsParams} params containing information to create a device alert time windows
80
+ * - id: The user alert time windows id, optional. If not provided, it will be generated
81
+ * - clientId: The client id, required
82
+ * - userId: The user id, required
83
+ * - alertConfigurationId: The alert configuration id, optional
84
+ * - daysOfTheWeek: The days of the week, required. It's a string of 7 characters, each one representing a day of the week, starting with Sunday. 1 means that the day is selected, 0 means that the day is not selected
85
+ * - startTime: The start time, required
86
+ * - endTime: The end time, required
87
+ * - imei: The imei, required
88
+ * - filter: The filter to apply on a specific alert type, optional
89
+ * @returns {DeviceAlertConfiguration}
90
+ */
91
+ async createDeviceAlertTimeWindows(params) {
92
+ this.logger.trace(params, 'UserConfigurationsRepository::createDeviceAlertTimeWindows started with params');
93
+ const novaDataSource = new NovaDataSource(this.novaDataSourceConfig, this.logger);
94
+ const result = await createDeviceAlertTimeWindows(novaDataSource, params, this.logger);
95
+ this.logger.trace(result, 'UserConfigurationsRepository::createDeviceAlertTimeWindows result');
96
+ return result;
97
+ }
98
+ /**
99
+ * Update user configuration
100
+ * @param {UpdateUserConfigurationParams} params containing information to update a user configuration
101
+ * Filters:
102
+ * - filters.userId: The user id to update the user configuration, required
103
+ * Values:
104
+ * One of the following values is required
105
+ * - values.timezone: The user timezone, optional
106
+ * - values.defaultMapLayer: The user default map layer, optional
107
+ * - values.speedUnits: The user speed units, optional
108
+ * - values.distanceUnits: The user distance units, optional
109
+ * - values.alertsNotificationsOn: The user alerts notifications on, optional
110
+ * - values.dataSourceTypeId: The user data source type id, optional
111
+ * - values.homepage: The user homepage, optional
112
+ * - values.temperatureUnits: The user temperature units, optional
113
+ * - values.addressFormat: The user address format, optional
114
+ * @returns Whether the user configuration was updated
115
+ */
116
+ async updateUserConfiguration(params) {
117
+ this.logger.trace(params, 'UserConfigurationsRepository::updateUserConfiguration started with params');
118
+ const novaDataSource = new NovaDataSource(this.novaDataSourceConfig, this.logger);
119
+ const result = await updateUserConfiguration(novaDataSource, params, this.logger);
120
+ this.logger.trace({ result }, 'UserConfigurationsRepository::updateUserConfiguration result');
121
+ return result;
122
+ }
123
+ /**
124
+ * Delete user configuration
125
+ * @param {DeleteUserConfigurationParams} params containing information to delete a user configuration
126
+ * - filters.userId: The user id to delete the user configuration, required
127
+ * @returns Whether the user configuration was deleted
128
+ */
129
+ async deleteUserConfiguration(params) {
130
+ this.logger.trace(params, 'UserConfigurationsRepository::deleteUserConfiguration started with params');
131
+ const novaDataSource = new NovaDataSource(this.novaDataSourceConfig, this.logger);
132
+ const result = await deleteUserConfiguration(novaDataSource, params, this.logger);
133
+ this.logger.trace({ result }, 'UserConfigurationsRepository::deleteUserConfiguration result');
134
+ return result;
135
+ }
136
+ /**
137
+ * Get user alert configurations
138
+ * @param {GetUserAlertConfigurationsParams} params containing information to get user alert configurations
139
+ * - filters.userId: The user id to obtain all user alert configurations from that user, required
140
+ * - filters.includeBeta: Whether to include beta alert types, required
141
+ * @returns The user alert configurations
142
+ */
143
+ async getUserAlertConfigurations(params) {
144
+ this.logger.trace(params, 'UserConfigurationsRepository::getUserAlertConfigurations started with params');
145
+ const novaDataSource = new NovaDataSource(this.novaDataSourceConfig, this.logger);
146
+ const result = await getUserAlertConfigurations(novaDataSource, params, this.logger);
147
+ this.logger.trace(result, 'UserConfigurationsRepository::getUserAlertConfigurations result');
148
+ return result;
149
+ }
150
+ /**
151
+ * Get user alert time windows configurations
152
+ * @param {GetUserAlertTimeWindowsParams} params containing information to get user alert time windows configurations
153
+ * - filters.userId: The user id to obtain all user alert configurations from that user.
154
+ * - filters.clientId: The client id to obtain the configurations.
155
+ * @returns The user alert time windows configurations
156
+ */
157
+ async getUserAlertTimeWindows(params) {
158
+ this.logger.trace(params, 'UserConfigurationsRepository::getUserAlertConfigurations started with params');
159
+ const novaDataSource = new NovaDataSource(this.novaDataSourceConfig, this.logger);
160
+ const result = await getUserAlertTimeWindows(novaDataSource, params, this.logger);
161
+ this.logger.trace(result, 'UserConfigurationsRepository::getUserAlertTimeWindows result');
162
+ return result;
163
+ }
164
+ /**
165
+ * Get device alert time windows configurations
166
+ * @param {GetDeviceAlertTimeWindowsParams} params containing information to get device alert time windows configurations
167
+ * - filters.imei: The imei to obtain all user alert configurations from that device.
168
+ * - filters.clientId: The client id to obtain the configurations.
169
+ * @returns The user device time windows configurations
170
+ */
171
+ async getDeviceAlertTimeWindows(params) {
172
+ this.logger.trace(params, 'UserConfigurationsRepository::getUserAlertConfigurations started with params');
173
+ const novaDataSource = new NovaDataSource(this.novaDataSourceConfig, this.logger);
174
+ const result = await getDeviceAlertTimeWindows(novaDataSource, params, this.logger);
175
+ this.logger.trace(result, 'UserConfigurationsRepository::getDeviceAlertTimeWindows result');
176
+ return result;
177
+ }
178
+ /**
179
+ * Bulk create user alert configurations
180
+ * @param {BulkCreateUserAlertConfigurationsParams} params containing information to bulk create user alert configurations
181
+ * - alertConfigurations: The user alert configurations to create, required
182
+ * Each user alert configuration should contain:
183
+ * - id: The user alert configuration id, optional. If not provided, it will be generated
184
+ * - userId: The user id, required
185
+ * - alertTypeId: The alert type id, required
186
+ * - smsNotification: The user sms notification, optional
187
+ * - emailNotification: The user email notification, optional
188
+ * - appNotification: The user app notification, optional. If not provided, it will be true
189
+ * - pushNotification: The user push notification, optional. If not provided, it will be true
190
+ * - alertValue: The user alert value, optional
191
+ * - alertMetadata: The user alert metadata, optional
192
+ * @returns Whether the user alert configurations were created
193
+ */
194
+ async bulkCreateUserAlertConfigurations(params) {
195
+ this.logger.trace(params, 'UserConfigurationsRepository::bulkCreateUserAlertConfigurations started with params');
196
+ const novaDataSource = new NovaDataSource(this.novaDataSourceConfig, this.logger);
197
+ const result = await bulkCreateUserAlertConfigurations(novaDataSource, params, this.logger);
198
+ this.logger.trace({ result }, 'UserConfigurationsRepository::bulkCreateUserAlertConfigurations result');
199
+ return result;
200
+ }
201
+ /**
202
+ * Update user alert configurations
203
+ * @param {UpdateUserAlertConfigurationsParams} params containing information to update user alert configurations
204
+ * Filters:
205
+ * - filters.userId: The user id to update the user alert configurations, required
206
+ * - filters.alertTypeId: The alert type id to update the user alert configurations, optional
207
+ * Values:
208
+ * One of the following values is required
209
+ * - values.smsNotification: The user sms notification, optional
210
+ * - values.emailNotification: The user email notification, optional
211
+ * - values.appNotification: The user app notification, optional
212
+ * - values.pushNotification: The user push notification, optional
213
+ * - values.alertValue: The user alert value, optional
214
+ * - values.alertMetadata: The user alert metadata, optional
215
+ * @returns Whether the user alert configurations were updated
216
+ */
217
+ async updateUserAlertConfigurations(params) {
218
+ this.logger.trace(params, 'UserConfigurationsRepository::updateUserAlertConfigurations started with params');
219
+ const novaDataSource = new NovaDataSource(this.novaDataSourceConfig, this.logger);
220
+ const result = await updateUserAlertConfigurations(novaDataSource, params, this.logger);
221
+ this.logger.trace({ result }, 'UserConfigurationsRepository::updateUserAlertConfigurations result');
222
+ return result;
223
+ }
224
+ /**
225
+ * Delete user alert configurations
226
+ * @param {DeleteUserAlertConfigurationsParams} params containing information to delete user alert configurations
227
+ * - filters.userId: The user id to delete the user alert configurations, required
228
+ * @returns Whether the user alert configurations were deleted
229
+ */
230
+ async deleteUserAlertConfigurations(params) {
231
+ this.logger.trace(params, 'UserConfigurationsRepository::deleteUserAlertConfigurations started with params');
232
+ const novaDataSource = new NovaDataSource(this.novaDataSourceConfig, this.logger);
233
+ const result = await deleteUserAlertConfigurations(novaDataSource, params, this.logger);
234
+ this.logger.trace({ result }, 'UserConfigurationsRepository::deleteUserAlertConfigurations result');
235
+ return result;
236
+ }
237
+ /**
238
+ * Delete user alert time windows configurations
239
+ * @param {DeleteAlertTimeWindowsParams} params containing information to delete user alert time windows configurations
240
+ * @returns Whether the user alert time windows configurations were deleted or not
241
+ */
242
+ async deleteUserAlertTimeWindows(params) {
243
+ this.logger.trace(params, 'UserConfigurationsRepository::deleteUserAlertTimeWindows started with params');
244
+ const novaDataSource = new NovaDataSource(this.novaDataSourceConfig, this.logger);
245
+ const result = await deleteUserAlertTimeWindows(novaDataSource, params, this.logger);
246
+ this.logger.trace({ result }, 'UserConfigurationsRepository::deleteUserAlertTimeWindows result');
247
+ return result;
248
+ }
249
+ /**
250
+ * Delete device alert time windows configurations
251
+ * @param {DeleteAlertTimeWindowsParams} params containing information to delete device alert time windows configurations
252
+ * @returns Whether the device alert time windows configurations were deleted or not
253
+ */
254
+ async deleteDeviceAlertTimeWindows(params) {
255
+ this.logger.trace(params, 'UserConfigurationsRepository::deleteDeviceAlertTimeWindows started with params');
256
+ const novaDataSource = new NovaDataSource(this.novaDataSourceConfig, this.logger);
257
+ const result = await deleteDeviceAlertTimeWindows(novaDataSource, params, this.logger);
258
+ this.logger.trace({ result }, 'UserConfigurationsRepository::deleteDeviceAlertTimeWindows result');
259
+ return result;
260
+ }
261
+ /**
262
+ * Update user alert time windows configurations
263
+ * @param {UpdateUserAlertTimeWindowsParams} params containing information to update user alert time windows configurations
264
+ * - filters.configId: The user alert time windows configuration id to update, required
265
+ * - values.alertConfigurationId: The alert configuration id to update, optional
266
+ * - values.daysOfTheWeek: The days of the week to update, optional
267
+ * - values.startTime: The start time to update, optional
268
+ * - values.endTime: The end time to update, optional
269
+ * One of the values should be provided
270
+ * @returns Whether the user alert time windows configurations were updated or not
271
+ */
272
+ async updateUserAlertTimeWindows(params) {
273
+ this.logger.trace(params, 'UserConfigurationsRepository::updateUserAlertTimeWindows started with params');
274
+ const novaDataSource = new NovaDataSource(this.novaDataSourceConfig, this.logger);
275
+ const result = await updateUserAlertTimeWindows(novaDataSource, params, this.logger);
276
+ this.logger.trace({ result }, 'UserConfigurationsRepository::updateUserAlertTimeWindows result');
277
+ return result;
278
+ }
279
+ /**
280
+ * Update device alert time windows configurations
281
+ * @param {UpdateDeviceAlertTimeWindowsParams} params containing information to update device alert time windows configurations
282
+ * - filters.configId: The device alert time windows configuration id to update, required
283
+ * - values.alertConfigurationId: The alert configuration id to update, optional
284
+ * - values.daysOfTheWeek: The days of the week to update, optional
285
+ * - values.startTime: The start time to update, optional
286
+ * - values.endTime: The end time to update, optional
287
+ * - values.filter: The filter to update, optional
288
+ * One of the values should be provided
289
+ * @returns Whether the device alert time windows configurations were updated or not
290
+ */
291
+ async updateDeviceAlertTimeWindows(params) {
292
+ this.logger.trace(params, 'UserConfigurationsRepository::updateDeviceAlertTimeWindows started with params');
293
+ const novaDataSource = new NovaDataSource(this.novaDataSourceConfig, this.logger);
294
+ const result = await updateDeviceAlertTimeWindows(novaDataSource, params, this.logger);
295
+ this.logger.trace({ result }, 'UserConfigurationsRepository::updateDeviceAlertTimeWindows result');
296
+ return result;
297
+ }
298
+ }
@@ -0,0 +1,29 @@
1
+ import { DeviceAlertConfiguration } from '../../entities';
2
+ export const updateDeviceAlertTimeWindows = async (novaDataSource, params, logger) => {
3
+ // userId filter is required
4
+ if (!params?.filters?.configId) {
5
+ logger.warn({ params }, 'UserConfigurationsRepository::updateDeviceAlertTimeWindows - missing required parameters');
6
+ return false;
7
+ }
8
+ if (Object.values(params?.values).every(value => value === null || value === undefined)) {
9
+ logger.warn({ params }, 'UserConfigurationsRepository::updateDeviceAlertTimeWindows - missing required parameters');
10
+ return false;
11
+ }
12
+ return novaDataSource.safeQuery(async (dataSource) => {
13
+ const userAlertConfigurationsRepository = dataSource.getRepository(DeviceAlertConfiguration);
14
+ const queryBuilder = userAlertConfigurationsRepository
15
+ .createQueryBuilder()
16
+ .update(DeviceAlertConfiguration)
17
+ .set({
18
+ alertConfigurationId: params?.values?.alertConfigurationId ?? undefined,
19
+ daysOfTheWeek: params?.values?.daysOfTheWeek ?? undefined,
20
+ startTime: params?.values?.startTime ?? undefined,
21
+ endTime: params?.values?.endTime ?? undefined,
22
+ filter: params?.values?.filter ?? undefined,
23
+ label: params?.values?.label ?? undefined,
24
+ })
25
+ .where('id = :id', { id: params?.filters?.configId });
26
+ const result = await queryBuilder.execute();
27
+ return result.affected > 0;
28
+ }, 'UserConfigurationsRepository::updateUserAlertConfiguration');
29
+ };
@@ -0,0 +1,46 @@
1
+ import { UserAlertConfiguration } from '../../entities';
2
+ import { uuidStringToBinaryBuffer } from '../../utils/uuidHelpers';
3
+ export const updateUserAlertConfigurations = async (novaDataSource, params, logger) => {
4
+ // userId filter is required
5
+ if (!params?.filters?.userId) {
6
+ logger.warn({ params }, 'UserConfigurationsRepository::updateUserAlertConfigurations - missing required parameters');
7
+ return false;
8
+ }
9
+ const userIdBinaryBuffer = uuidStringToBinaryBuffer(params?.filters?.userId);
10
+ if (!userIdBinaryBuffer) {
11
+ logger.warn({ userId: params?.filters?.userId }, 'UserConfigurationsRepository::updateUserAlertConfigurations - user id should be a valid UUID');
12
+ return false;
13
+ }
14
+ // at least one field to update is required
15
+ if (params?.values?.smsNotification == null &&
16
+ params?.values?.emailNotification == null &&
17
+ params?.values?.appNotification == null &&
18
+ params?.values?.pushNotification == null &&
19
+ !params?.values?.alertValue &&
20
+ !params?.values?.alertMetadata) {
21
+ logger.warn({ params }, 'UserConfigurationsRepository::updateUserAlertConfigurations - missing required parameters');
22
+ return false;
23
+ }
24
+ return novaDataSource.safeQuery(async (dataSource) => {
25
+ const userAlertConfigurationsRepository = dataSource.getRepository(UserAlertConfiguration);
26
+ const queryBuilder = userAlertConfigurationsRepository
27
+ .createQueryBuilder()
28
+ .update(UserAlertConfiguration)
29
+ .set({
30
+ smsNotification: params?.values?.smsNotification,
31
+ emailNotification: params?.values?.emailNotification,
32
+ appNotification: params?.values?.appNotification,
33
+ pushNotification: params?.values?.pushNotification,
34
+ alertValue: params?.values?.alertValue,
35
+ alertMetadata: params?.values?.alertMetadata,
36
+ })
37
+ .where('userId = :userId', { userId: userIdBinaryBuffer });
38
+ if (params?.filters?.alertTypeId) {
39
+ queryBuilder.andWhere('alertTypeId = :alertTypeId', {
40
+ alertTypeId: params?.filters?.alertTypeId,
41
+ });
42
+ }
43
+ const result = await queryBuilder.execute();
44
+ return result.affected > 0;
45
+ }, 'UserConfigurationsRepository::updateUserAlertConfiguration');
46
+ };