@spytecgps/nova-orm 0.0.224 → 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 (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 +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.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,65 @@
1
+ import { Device, Trip } from '../../entities';
2
+ import { requiredGetTripsParamsAttributes, } from '../../types/trip';
3
+ import { anyAttributeIsNull } from '../../utils/anyAttributeIsNull';
4
+ const addAndWhere = (queryBuilder, params, entityAttributeName, operation, paramsName) => {
5
+ if (params[paramsName] != null) {
6
+ const parameter = {};
7
+ parameter[paramsName] = params[paramsName];
8
+ queryBuilder.andWhere(`${entityAttributeName} ${operation} :${paramsName}`, parameter);
9
+ }
10
+ };
11
+ const addOrderBy = (queryBuilder, sortOptions) => {
12
+ let sortingTableAlias = 'trip';
13
+ let sortingAttributeName = sortOptions?.sortField ?? 'startDate';
14
+ if (sortingAttributeName === 'deviceName') {
15
+ sortingTableAlias = 'device';
16
+ sortingAttributeName = 'name';
17
+ }
18
+ queryBuilder.orderBy(`${sortingTableAlias}.${sortingAttributeName}`, sortOptions?.sortOrder === 'ASC' ? 'ASC' : 'DESC');
19
+ };
20
+ export const getTrips = async (novaDataSource, params, logger) => {
21
+ if (anyAttributeIsNull(params, requiredGetTripsParamsAttributes)) {
22
+ logger.warn('TripRepository::getTrips missing required parameters');
23
+ return null;
24
+ }
25
+ return novaDataSource.safeQuery(async (safeDataSource) => {
26
+ const tripsRepository = safeDataSource.getRepository(Trip);
27
+ const queryBuilder = tripsRepository
28
+ .createQueryBuilder('trip')
29
+ .innerJoin(Device, 'device', 'device.imei = trip.imei AND device.clientId = trip.clientId');
30
+ const { filters, pagingOptions, sortOptions } = params;
31
+ queryBuilder.where('trip.startDate between :from and :to', {
32
+ from: filters.from,
33
+ to: filters.to,
34
+ });
35
+ addAndWhere(queryBuilder, filters, 'trip.clientId', '=', 'clientId');
36
+ if (!filters.deviceStatus) {
37
+ filters.deviceStatus = 'A';
38
+ }
39
+ addAndWhere(queryBuilder, filters, 'device.status', '=', 'deviceStatus');
40
+ if (filters.imeis?.length) {
41
+ queryBuilder.andWhere('trip.imei IN (:imeiList)', {
42
+ imeiList: filters.imeis,
43
+ });
44
+ }
45
+ addAndWhere(queryBuilder, filters, 'device.name', '=', 'deviceName');
46
+ addAndWhere(queryBuilder, filters, 'trip.tripCompletionStatusId', '=', 'completionStatus');
47
+ addAndWhere(queryBuilder, filters, 'trip.tripType', '=', 'tripType');
48
+ addAndWhere(queryBuilder, filters, 'trip.duration', '>=', 'durationMin');
49
+ addAndWhere(queryBuilder, filters, 'trip.duration', '<=', 'durationMax');
50
+ addAndWhere(queryBuilder, filters, 'trip.distance', '>=', 'distanceMin');
51
+ addAndWhere(queryBuilder, filters, 'trip.distance', '<=', 'distanceMax');
52
+ addOrderBy(queryBuilder, sortOptions);
53
+ // counting before applying pagination
54
+ const tripCount = await queryBuilder.getCount();
55
+ const limit = pagingOptions.pageSize ?? 50;
56
+ queryBuilder.limit(limit);
57
+ const globalIndex = (pagingOptions.pageIndex ?? 0) * limit;
58
+ queryBuilder.offset(globalIndex);
59
+ const trips = await queryBuilder.getMany();
60
+ return {
61
+ trips,
62
+ totalCount: tripCount,
63
+ };
64
+ }, 'TripRepository::getTrips error');
65
+ };
@@ -0,0 +1,69 @@
1
+ import { NovaDataSource } from '../../novaDataSource';
2
+ import { BaseRepository } from '../baseRepository';
3
+ import { createTrip } from './createTrip';
4
+ import { getTripById } from './getTripById';
5
+ import { getTrips } from './getTrips';
6
+ import { updateTripEndValues } from './updateTripEndValues';
7
+ import { upsertTrip } from './upsertTrip';
8
+ export class TripRepository extends BaseRepository {
9
+ /**
10
+ * Create a trip
11
+ * @param {CreateTripParams} params containing information to create a trip
12
+ * @returns {Trip} the created trip
13
+ */
14
+ async createTrip(params) {
15
+ this.logger.trace(params, `TripRepository::this.createTrip started with params`);
16
+ const novaDataSource = new NovaDataSource(this.novaDataSourceConfig, this.logger);
17
+ const result = await createTrip(novaDataSource, params, this.logger);
18
+ this.logger.trace(result, 'TripRepository::createTrip result');
19
+ return result;
20
+ }
21
+ /**
22
+ * Update the end's attributes in a trip
23
+ * @param {UpdateTripEndValuesParams} params containing information to update the trip
24
+ * @returns {boolean} true if the update was successfull, false otherwise
25
+ */
26
+ async updateTripEndValues(params) {
27
+ this.logger.trace(params, `TripRepository::this.updateTripEndValues started with params`);
28
+ const novaDataSource = new NovaDataSource(this.novaDataSourceConfig, this.logger);
29
+ const result = await updateTripEndValues(novaDataSource, params, this.logger);
30
+ this.logger.trace({ result }, 'TripRepository::updateTripEndValues result');
31
+ return result;
32
+ }
33
+ /**
34
+ * Get a trip by id
35
+ * @param {CreateTripParams} id the trip's id
36
+ * @returns {Trip} the Trip associated to the passed id or null
37
+ */
38
+ async getTripById(id) {
39
+ this.logger.trace({}, `TripRepository::this.getTripById started with params`);
40
+ const novaDataSource = new NovaDataSource(this.novaDataSourceConfig, this.logger);
41
+ const result = await getTripById(novaDataSource, id, this.logger);
42
+ this.logger.trace(result, 'TripRepository::getTripById result');
43
+ return result;
44
+ }
45
+ /**
46
+ * Get a trip by id
47
+ * @param {GetTripsParams} id the trip's filters
48
+ * @returns {GetTripsResult} The GetTripsResult containing the trips and the totalCount.
49
+ */
50
+ async getTrips(params) {
51
+ this.logger.trace({}, `TripRepository::this.getTrips started with params`);
52
+ const novaDataSource = new NovaDataSource(this.novaDataSourceConfig, this.logger);
53
+ const result = await getTrips(novaDataSource, params, this.logger);
54
+ this.logger.trace(result, 'TripRepository::getTrips result');
55
+ return result;
56
+ }
57
+ /**
58
+ * Upsert a trip
59
+ * @param {UpsertTripParams} params containing information to upsert a trip
60
+ * @returns {boolean} true if the event was upserted, false otherwise
61
+ */
62
+ async upsertTrip(params) {
63
+ this.logger.trace(params, `TripRepository::this.upsertTrip started with params`);
64
+ const novaDataSource = new NovaDataSource(this.novaDataSourceConfig, this.logger);
65
+ const result = await upsertTrip(novaDataSource, params, this.logger);
66
+ this.logger.trace({ result }, 'TripRepository::upsertTrip result');
67
+ return result;
68
+ }
69
+ }
@@ -0,0 +1,36 @@
1
+ import { Trip } from '../../entities';
2
+ import { requiredUpdateTripEndValuesParamsAttributes, } from '../../types/trip';
3
+ import { anyAttributeIsNull } from '../../utils/anyAttributeIsNull';
4
+ import { uuidStringToBinaryBuffer } from '../../utils/uuidHelpers';
5
+ export const updateTripEndValues = async (novaDataSource, params, logger) => {
6
+ const buffertripGuid = uuidStringToBinaryBuffer(params?.filters?.tripGuid);
7
+ const bufferEndMessageId = uuidStringToBinaryBuffer(params?.values?.endMessageId);
8
+ if (!buffertripGuid ||
9
+ !bufferEndMessageId ||
10
+ anyAttributeIsNull(params, requiredUpdateTripEndValuesParamsAttributes)) {
11
+ logger.warn({ params }, 'TripRepository::updateTripEndValues missing required parameters');
12
+ return false;
13
+ }
14
+ return novaDataSource.safeQuery(async (safeDataSource) => {
15
+ const tripsRepository = safeDataSource.getRepository(Trip);
16
+ const { values } = params;
17
+ const updateResult = await tripsRepository
18
+ .createQueryBuilder()
19
+ .update(Trip)
20
+ .set({
21
+ endDate: values.endDate,
22
+ endLat: values.endLat,
23
+ endLon: values.endLon,
24
+ endAddress: values.endAddress,
25
+ positionEnd: values.positionEnd,
26
+ endMessageId: bufferEndMessageId,
27
+ distance: values.distance,
28
+ duration: values.duration,
29
+ tripType: values.tripType,
30
+ tripCompletionStatusId: values.tripCompletionStatusId,
31
+ })
32
+ .where('tripGuid = :tripGuid', { tripGuid: buffertripGuid })
33
+ .execute();
34
+ return updateResult.affected > 0;
35
+ }, 'TripRepository::updateTripEndValues error');
36
+ };
@@ -0,0 +1,31 @@
1
+ import { Trip } from '../../entities';
2
+ import { requiredCreateTripParamsAttributes } from '../../types/trip';
3
+ import { anyAttributeIsNull } from '../../utils/anyAttributeIsNull';
4
+ import { uuidStringToBinaryBuffer } from '../../utils/uuidHelpers';
5
+ export const upsertTrip = async (novaDataSource, params, logger) => {
6
+ const bufferId = uuidStringToBinaryBuffer(params?.tripGuid);
7
+ const bufferSartMessageId = uuidStringToBinaryBuffer(params?.startMessageId);
8
+ const bufferEndMessageId = uuidStringToBinaryBuffer(params?.endMessageId);
9
+ if (!bufferId ||
10
+ (params?.startMessageId && !bufferSartMessageId) ||
11
+ (params?.endMessageId && !bufferEndMessageId) ||
12
+ anyAttributeIsNull(params, requiredCreateTripParamsAttributes)) {
13
+ logger.warn({ params }, 'TripRepository::upsertTrip missing required parameters');
14
+ return false;
15
+ }
16
+ return novaDataSource.safeQuery(async (safeDataSource) => {
17
+ const tripsRepository = safeDataSource.getRepository(Trip);
18
+ const now = new Date();
19
+ const newTrip = {
20
+ ...params,
21
+ tripGuid: bufferId,
22
+ createdAt: params.createdAt ?? now,
23
+ startMessageId: bufferSartMessageId,
24
+ endMessageId: bufferEndMessageId,
25
+ };
26
+ const result = await tripsRepository.upsert(newTrip, {
27
+ conflictPaths: ['tripGuid'],
28
+ });
29
+ return result?.raw?.affectedRows > 0;
30
+ }, 'TripRepository::upsertTrip error');
31
+ };
@@ -0,0 +1,26 @@
1
+ import { UserActivation } from '../../entities/userActivation';
2
+ import { uuidStringToBinaryBuffer } from '../../utils/uuidHelpers';
3
+ export const createUserActivation = async (novaDataSource, params, logger) => {
4
+ if (!params?.userId || !params?.clientId) {
5
+ logger.warn({ params }, 'UserActivationsRepository::createUserActivation - missing required parameters');
6
+ return null;
7
+ }
8
+ const binaryBuffer = uuidStringToBinaryBuffer(params?.userId);
9
+ if (!binaryBuffer?.length) {
10
+ logger.warn({ params }, 'UserActivationsRepository::createUserActivation - user id should be a valid UUID');
11
+ return null;
12
+ }
13
+ return novaDataSource.safeQuery(async (dataSource) => {
14
+ const userActivationsRepository = dataSource.getRepository(UserActivation);
15
+ const now = new Date();
16
+ const newUserActivation = {
17
+ id: params?.id,
18
+ userId: binaryBuffer,
19
+ clientId: params?.clientId,
20
+ createdAt: now,
21
+ legacyCreatedAt: now,
22
+ status: params?.status ?? 'A',
23
+ };
24
+ return await userActivationsRepository.save(newUserActivation);
25
+ }, 'UserActivationsRepository::createUserActivation');
26
+ };
@@ -0,0 +1,35 @@
1
+ import { UserActivationDevice } from '../../entities/userActivationDevice';
2
+ export const createUserActivationDevice = async (novaDataSource, params, logger) => {
3
+ if (!params?.userActivationId || !params?.deviceId || !params?.imei) {
4
+ logger.warn({ params }, 'UserActivationsRepository::createUserActivation - missing required parameters');
5
+ return null;
6
+ }
7
+ return novaDataSource.safeQuery(async (dataSource) => {
8
+ const userActivationDevicesRepository = dataSource.getRepository(UserActivationDevice);
9
+ const now = new Date();
10
+ const newUserActivationDevice = {
11
+ id: params?.id,
12
+ deviceId: params?.deviceId,
13
+ billingInterval: params?.billingInterval,
14
+ deviceName: params?.deviceName,
15
+ userActivationId: params?.userActivationId,
16
+ trackingReason: params?.trackingReason,
17
+ deviceColor: params?.deviceColor,
18
+ notificationByEmail: params?.notificationByEmail,
19
+ notificationBySms: params?.notificationBySms,
20
+ planAnnual: params?.planAnnual,
21
+ dataSourceTypeId: params?.dataSourceTypeId,
22
+ subscriptionId: params?.subscriptionId,
23
+ platform: params?.platform,
24
+ eventType: params?.eventType,
25
+ planCode: params?.planCode,
26
+ servicePlan: params?.servicePlan,
27
+ model: params?.model,
28
+ imei: params?.imei,
29
+ status: params?.status,
30
+ createdAt: now,
31
+ modifiedAt: now,
32
+ };
33
+ return await userActivationDevicesRepository.save(newUserActivationDevice);
34
+ }, 'UserActivationsRepository::createUserActivation');
35
+ };
@@ -0,0 +1,34 @@
1
+ import { UserActivationEvent } from '../../entities';
2
+ import { uuidStringToBinaryBuffer } from '../../utils/uuidHelpers';
3
+ export const createUserActivationEvent = async (novaDataSource, params, logger) => {
4
+ if (!params?.userId || !params?.eventId || !params?.eventName) {
5
+ logger.warn({ params }, 'UserActivationsRepository::createUserActivationEvent - missing required parameters');
6
+ return null;
7
+ }
8
+ const userIdBinaryBuffer = uuidStringToBinaryBuffer(params?.userId);
9
+ if (!userIdBinaryBuffer?.length) {
10
+ logger.warn({ params }, 'UserActivationsRepository::createUserActivationEvent - user id should be a valid UUID');
11
+ return null;
12
+ }
13
+ const eventIdBinaryBuffer = uuidStringToBinaryBuffer(params?.eventId);
14
+ if (!eventIdBinaryBuffer?.length) {
15
+ logger.warn({ params }, 'UserActivationsRepository::createUserActivationEvent - event id should be a valid UUID');
16
+ return null;
17
+ }
18
+ return novaDataSource.safeQuery(async (dataSource) => {
19
+ const userActivationEventsRepository = dataSource.getRepository(UserActivationEvent);
20
+ const now = new Date();
21
+ const newUserActivationEvent = {
22
+ userId: userIdBinaryBuffer,
23
+ eventId: eventIdBinaryBuffer,
24
+ eventName: params?.eventName,
25
+ eventValue: params?.eventValue,
26
+ eventMetadata: params?.eventMetadata,
27
+ platform: params?.platform,
28
+ ip: params?.ip,
29
+ userAgent: params?.userAgent,
30
+ createdAt: params?.createdAt ?? now,
31
+ };
32
+ return await userActivationEventsRepository.save(newUserActivationEvent);
33
+ }, 'UserActivationsRepository::createUserActivationEvent');
34
+ };
@@ -0,0 +1,28 @@
1
+ import { UserActivationMetric } from '../../entities/userActivationMetric';
2
+ import { uuidStringToBinaryBuffer } from '../../utils/uuidHelpers';
3
+ export const createUserActivationMetric = async (novaDataSource, params, logger) => {
4
+ if (!params?.userId || !params?.firstName || !params?.lastName || !params?.email) {
5
+ logger.warn({ params }, 'UserActivationsRepository::createUserActivationMetric - missing required parameters');
6
+ return null;
7
+ }
8
+ const binaryBuffer = uuidStringToBinaryBuffer(params?.userId);
9
+ if (!binaryBuffer?.length) {
10
+ logger.warn({ params }, 'UserActivationsRepository::createUserActivationMetric - user id should be a valid UUID');
11
+ return null;
12
+ }
13
+ return novaDataSource.safeQuery(async (dataSource) => {
14
+ const userActivationUserActivationMetricsRepository = dataSource.getRepository(UserActivationMetric);
15
+ const now = new Date();
16
+ const newUserActivationUserActivationMetric = {
17
+ id: params?.id,
18
+ userId: binaryBuffer,
19
+ firstName: params?.firstName,
20
+ lastName: params?.lastName,
21
+ email: params?.email,
22
+ phone: params?.phone,
23
+ createdAt: now,
24
+ modifiedAt: now,
25
+ };
26
+ return await userActivationUserActivationMetricsRepository.save(newUserActivationUserActivationMetric);
27
+ }, 'UserActivationsRepository::createUserActivationMetric');
28
+ };
@@ -0,0 +1,22 @@
1
+ import { UserActivation } from '../../entities';
2
+ import { uuidStringToBinaryBuffer } from '../../utils/uuidHelpers';
3
+ export const deleteUserActivation = async (novaDataSource, params, logger) => {
4
+ if (!params?.userId) {
5
+ logger.warn({ params }, 'UserActivationsRepository::deleteUserActivation - missing required parameters');
6
+ return false;
7
+ }
8
+ const binaryBuffer = uuidStringToBinaryBuffer(params?.userId);
9
+ if (!binaryBuffer?.length) {
10
+ logger.warn({ params }, 'UserActivationsRepository::deleteUserActivation - user id should be a valid UUID');
11
+ return false;
12
+ }
13
+ return novaDataSource.safeQuery(async (dataSource) => {
14
+ const userActivationsRepository = dataSource.getRepository(UserActivation);
15
+ const result = await userActivationsRepository
16
+ .createQueryBuilder('userActivation')
17
+ .delete()
18
+ .where('userId = :userId', { userId: binaryBuffer })
19
+ .execute();
20
+ return result.affected > 0;
21
+ }, 'UserActivationsRepository::deleteUserActivation');
22
+ };
@@ -0,0 +1,26 @@
1
+ import { UserActivationDevice } from '../../entities';
2
+ export const getLastActivationDevice = async (novaDataSource, params, logger) => {
3
+ if (!params?.filters?.imei) {
4
+ logger.warn({ params }, 'UserActivationsRepository::getLastActivationDevice - missing required parameters');
5
+ return null;
6
+ }
7
+ return novaDataSource.safeQuery(async (dataSource) => {
8
+ const userActivationDevicesRepository = dataSource.getRepository(UserActivationDevice);
9
+ let queryBuilder = userActivationDevicesRepository.createQueryBuilder('userActivationDevice');
10
+ if (params.projectionOptions?.withDevice) {
11
+ queryBuilder = queryBuilder.innerJoinAndSelect('userActivationDevice.device', 'device');
12
+ }
13
+ if (params.projectionOptions?.withUserActivation) {
14
+ queryBuilder = queryBuilder.innerJoinAndSelect('userActivationDevice.userActivation', 'userActivation');
15
+ }
16
+ queryBuilder = queryBuilder.where('LOWER(userActivationDevice.imei) = LOWER(:imei)', {
17
+ imei: params.filters.imei,
18
+ });
19
+ const sortField = params.sortOptions?.sortField
20
+ ? `userActivationDevice.${params.sortOptions.sortField}`
21
+ : 'userActivationDevice.id';
22
+ queryBuilder = queryBuilder.orderBy(sortField, 'DESC').limit(1);
23
+ const result = await queryBuilder.getOne();
24
+ return result;
25
+ }, 'UserActivationsRepository::getLastActivationDevice');
26
+ };
@@ -0,0 +1,24 @@
1
+ import { UserActivationDevice } from '../../entities';
2
+ export const getUserActivationDevices = async (novaDataSource, params, logger) => {
3
+ if (!params?.filters?.id && !params?.filters?.imei) {
4
+ logger.warn({ params }, 'UserActivationsRepository::getUserActivations - missing required parameters');
5
+ return [];
6
+ }
7
+ return novaDataSource.safeQuery(async (dataSource) => {
8
+ const userActivationDevicesRepository = dataSource.getRepository(UserActivationDevice);
9
+ let queryBuilder = userActivationDevicesRepository.createQueryBuilder('userActivationDevice');
10
+ if (params.filters.id) {
11
+ queryBuilder = queryBuilder.where('userActivationDevice.id = :id', {
12
+ id: params.filters.id,
13
+ });
14
+ }
15
+ if (params.filters.imei) {
16
+ queryBuilder = queryBuilder.andWhere('userActivationDevice.imei = :imei', {
17
+ imei: params.filters.imei,
18
+ });
19
+ }
20
+ queryBuilder = queryBuilder.orderBy('userActivationDevice.id', 'DESC');
21
+ const result = await queryBuilder.getMany();
22
+ return result;
23
+ }, 'UserActivationsRepository::getUserActivationDevices');
24
+ };
@@ -0,0 +1,26 @@
1
+ import { UserActivationDevice } from '../../entities';
2
+ export const getUserActivationDevicesByClientId = async (novaDataSource, params, logger) => {
3
+ if (!params?.filters?.clientId) {
4
+ logger.warn({ params }, 'UserActivationsRepository::getUserActivationDevicesByClientId - missing required parameters');
5
+ return [];
6
+ }
7
+ return novaDataSource.safeQuery(async (dataSource) => {
8
+ const userActivationDevicesRepository = dataSource.getRepository(UserActivationDevice);
9
+ const query = `SELECT *
10
+ FROM (
11
+ SELECT uad.*,
12
+ row_number() over (partition by uad.imei order by uad.createdAt desc) as rk
13
+ FROM userActivationDevice uad
14
+ INNER JOIN device d on uad.deviceId = d.id
15
+ WHERE d.clientId = ?
16
+ ) AS sub
17
+ WHERE sub.rk = 1`;
18
+ const result = await userActivationDevicesRepository.query(query, [params.filters.clientId]);
19
+ return result.map(uad => ({
20
+ ...uad,
21
+ notificationByEmail: uad.notificationByEmail === 1,
22
+ notificationBySms: uad.notificationBySms === 1,
23
+ planAnnual: uad.planAnnual === 1,
24
+ }));
25
+ }, 'UserActivationsRepository::getUserActivationDevicesByClientId');
26
+ };
@@ -0,0 +1,24 @@
1
+ import { UserActivationMetric } from '../../entities';
2
+ import { uuidStringToBinaryBuffer } from '../../utils/uuidHelpers';
3
+ export const getUserActivationMetrics = async (novaDataSource, params, logger) => {
4
+ if (!params?.filters?.userId) {
5
+ logger.warn({ params }, 'UserActivationsRepository::getUserActivationMetrics - missing required parameters');
6
+ return null;
7
+ }
8
+ const binaryBuffer = uuidStringToBinaryBuffer(params?.filters?.userId);
9
+ if (!binaryBuffer?.length) {
10
+ logger.warn({ params }, 'UserActivationsRepository::getUserActivationMetrics - user id should be a valid UUID');
11
+ return null;
12
+ }
13
+ return novaDataSource.safeQuery(async (dataSource) => {
14
+ const userActivationMetricsRepository = dataSource.getRepository(UserActivationMetric);
15
+ let queryBuilder = userActivationMetricsRepository.createQueryBuilder('userActivationMetric');
16
+ if (params.filters.userId) {
17
+ queryBuilder = queryBuilder.where('userActivationMetric.userId = :userId', {
18
+ userId: binaryBuffer,
19
+ });
20
+ }
21
+ const result = await queryBuilder.getOne();
22
+ return result;
23
+ }, 'UserActivationsRepository::getUserActivationMetrics');
24
+ };
@@ -0,0 +1,29 @@
1
+ import { UserActivation } from '../../entities';
2
+ import { uuidStringToBinaryBuffer } from '../../utils/uuidHelpers';
3
+ export const getUserActivations = async (novaDataSource, params, logger) => {
4
+ if (!params?.filters?.userId && !params?.filters?.clientId) {
5
+ logger.warn({ params }, 'UserActivationsRepository::getUserActivations - missing required parameters');
6
+ return [];
7
+ }
8
+ const binaryBuffer = uuidStringToBinaryBuffer(params?.filters?.userId);
9
+ if (params?.filters?.userId && !binaryBuffer?.length) {
10
+ logger.warn({ params }, 'UserActivationsRepository::getUserActivations - user id should be a valid UUID');
11
+ return [];
12
+ }
13
+ return novaDataSource.safeQuery(async (dataSource) => {
14
+ const userActivationsRepository = dataSource.getRepository(UserActivation);
15
+ let queryBuilder = userActivationsRepository.createQueryBuilder('userActivation');
16
+ if (params.filters.userId) {
17
+ queryBuilder = queryBuilder.where('userActivation.userId = :userId', {
18
+ userId: binaryBuffer,
19
+ });
20
+ }
21
+ if (params.filters.clientId) {
22
+ queryBuilder = queryBuilder.andWhere('userActivation.clientId = :clientId', {
23
+ clientId: params.filters.clientId,
24
+ });
25
+ }
26
+ const result = await queryBuilder.getMany();
27
+ return result;
28
+ }, 'UserActivationsRepository::getUserActivations');
29
+ };