@spytecgps/nova-orm 0.0.224 → 0.0.226

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (390) hide show
  1. package/dist/entities/acumaticaAmazonProduct.js +46 -0
  2. package/dist/entities/acumaticaImeiIccidData.js +91 -0
  3. package/dist/entities/acumaticaOrderShipmentDetails.js +61 -0
  4. package/dist/entities/acumaticaShipment.js +31 -0
  5. package/dist/entities/acumaticaShipmentAmazon.js +26 -0
  6. package/dist/entities/aempToken.js +47 -0
  7. package/dist/entities/alert.js +129 -0
  8. package/dist/entities/alertMigration.js +115 -0
  9. package/dist/entities/alertMigrationBatch.js +21 -0
  10. package/dist/entities/alertTimeWindowConfiguration.js +61 -0
  11. package/dist/entities/alertType.js +83 -0
  12. package/dist/entities/appFeatureType.js +36 -0
  13. package/dist/entities/assetCategory.js +32 -0
  14. package/dist/entities/billing.js +108 -0
  15. package/dist/entities/billingCustomerBraintree.js +62 -0
  16. package/dist/entities/billingDeviceHistory.js +61 -0
  17. package/dist/entities/billingHubspotPaymentLog.js +256 -0
  18. package/dist/entities/billingKlarnaCustomer.js +76 -0
  19. package/dist/entities/billingKlarnaOrder.js +114 -0
  20. package/dist/entities/billingStatusHistoryBraintree.js +63 -0
  21. package/dist/entities/billingSubscriptionBraintree.js +229 -0
  22. package/dist/entities/blacklist.js +51 -0
  23. package/dist/entities/blacklistType.js +31 -0
  24. package/dist/entities/boundary.js +119 -0
  25. package/dist/entities/boundaryEvent.js +105 -0
  26. package/dist/entities/cellTower.js +66 -0
  27. package/dist/entities/client.js +153 -0
  28. package/dist/entities/clientAppFeature.js +47 -0
  29. package/dist/entities/clientConfiguration.js +47 -0
  30. package/dist/entities/clientDeviceSetting.js +90 -0
  31. package/dist/entities/clientType.js +36 -0
  32. package/dist/entities/country.js +90 -0
  33. package/dist/entities/customerAttribute.js +52 -0
  34. package/dist/entities/dataSourceType.js +31 -0
  35. package/dist/entities/deactivation.js +83 -0
  36. package/dist/entities/deactivationReason.js +40 -0
  37. package/dist/entities/device.js +160 -0
  38. package/dist/entities/deviceAlertConfiguration.js +71 -0
  39. package/dist/entities/deviceBehavior.js +147 -0
  40. package/dist/entities/deviceCustomConfiguration.js +67 -0
  41. package/dist/entities/deviceHistory.js +46 -0
  42. package/dist/entities/deviceModelListener.js +46 -0
  43. package/dist/entities/devicePairing.js +67 -0
  44. package/dist/entities/devicePromotion.js +104 -0
  45. package/dist/entities/deviceReplacement.js +57 -0
  46. package/dist/entities/deviceTask.js +44 -0
  47. package/dist/entities/deviceType.js +149 -0
  48. package/dist/entities/deviceTypeEvent.js +32 -0
  49. package/dist/entities/deviceTypeFeature.js +32 -0
  50. package/dist/entities/deviceTypeFirmware.js +117 -0
  51. package/dist/entities/entityTag.js +48 -0
  52. package/dist/entities/entityType.js +31 -0
  53. package/dist/entities/event.js +36 -0
  54. package/dist/entities/feature.js +36 -0
  55. package/dist/entities/firmwareAutoUpgradeBlacklist.js +35 -0
  56. package/dist/entities/firmwareUpgradeTask.js +105 -0
  57. package/dist/entities/iccidStatus.js +49 -0
  58. package/dist/entities/imeiIccidCarrier.js +125 -0
  59. package/dist/entities/imeiIccidHistory.js +43 -0
  60. package/dist/entities/index.js +99 -0
  61. package/dist/entities/industry.js +46 -0
  62. package/dist/entities/latestPosition.js +100 -0
  63. package/dist/entities/latestPositionMigration.js +96 -0
  64. package/dist/entities/latestPositionMigrationBatch.js +21 -0
  65. package/dist/entities/magento2Gps.js +256 -0
  66. package/dist/entities/magento2Plan.js +41 -0
  67. package/dist/entities/mobileNetwork.js +51 -0
  68. package/dist/entities/notificationRecipient.js +100 -0
  69. package/dist/entities/organization.js +46 -0
  70. package/dist/entities/plan.js +86 -0
  71. package/dist/entities/position.js +102 -0
  72. package/dist/entities/positionMigration.js +96 -0
  73. package/dist/entities/positionMigrationBatch.js +21 -0
  74. package/dist/entities/promotion.js +134 -0
  75. package/dist/entities/securityRole.js +41 -0
  76. package/dist/entities/serviceProvider.js +41 -0
  77. package/dist/entities/serviceProviderProduct.js +61 -0
  78. package/dist/entities/serviceProviderProductNetwork.js +31 -0
  79. package/dist/entities/serviceProviderProductType.js +31 -0
  80. package/dist/entities/sim.js +92 -0
  81. package/dist/entities/task.js +146 -0
  82. package/dist/entities/taskSchedule.js +141 -0
  83. package/dist/entities/trip.js +127 -0
  84. package/dist/entities/tripCompletionStatus.js +36 -0
  85. package/dist/entities/tripPosition.js +26 -0
  86. package/dist/entities/user.js +196 -0
  87. package/dist/entities/userActivation.js +52 -0
  88. package/dist/entities/userActivationDevice.js +164 -0
  89. package/dist/entities/userActivationEvent.js +61 -0
  90. package/dist/entities/userActivationMetric.js +208 -0
  91. package/dist/entities/userAlertComplain.js +78 -0
  92. package/dist/entities/userAlertConfiguration.js +109 -0
  93. package/dist/entities/userAppFeedback.js +52 -0
  94. package/dist/entities/userAppIncident.js +176 -0
  95. package/dist/entities/userConfiguration.js +109 -0
  96. package/dist/entities/userDataDeletionRequest.js +56 -0
  97. package/dist/entities/userDeviceBehaviorTask.js +80 -0
  98. package/dist/entities/userInvitation.js +89 -0
  99. package/dist/entities/userRatingRequest.js +75 -0
  100. package/dist/entities/userRegistrationAttempt.js +177 -0
  101. package/dist/entities/userSecurityRole.js +33 -0
  102. package/dist/index.js +1 -2
  103. package/dist/migration/1684483704434-addLowerCaseIndex.js +16 -0
  104. package/dist/novaDataSource.js +111 -0
  105. package/dist/repositories/acumatica/getAcumaticaImeiIccidData.js +35 -0
  106. package/dist/repositories/acumatica/getAcumaticaShipmentDetails.js +50 -0
  107. package/dist/repositories/acumatica/getLastAcumaticaShipmentDetails.js +27 -0
  108. package/dist/repositories/acumatica/index.js +52 -0
  109. package/dist/repositories/aempToken/createAempToken.js +26 -0
  110. package/dist/repositories/aempToken/deleteAempTokens.js +30 -0
  111. package/dist/repositories/aempToken/getAempTokens.js +27 -0
  112. package/dist/repositories/aempToken/index.js +53 -0
  113. package/dist/repositories/alertTypes/getAlertTypes.js +13 -0
  114. package/dist/repositories/alertTypes/index.js +18 -0
  115. package/dist/repositories/alerts/createAlert.js +94 -0
  116. package/dist/repositories/alerts/createUserAlertComplain.js +26 -0
  117. package/dist/repositories/alerts/getAlertsReportByClient.js +65 -0
  118. package/dist/repositories/alerts/getAlertsReportByUser.js +127 -0
  119. package/dist/repositories/alerts/index.js +104 -0
  120. package/dist/repositories/appFeatures/createAppFeatureType.js +15 -0
  121. package/dist/repositories/appFeatures/createClientAppFeature.js +15 -0
  122. package/dist/repositories/appFeatures/getClientAppFeatures.js +39 -0
  123. package/dist/repositories/appFeatures/index.js +57 -0
  124. package/dist/repositories/assetCategories/getAssetCategories.js +8 -0
  125. package/dist/repositories/assetCategories/index.js +16 -0
  126. package/dist/repositories/baseRepository.js +9 -0
  127. package/dist/repositories/billing/createBilling.js +37 -0
  128. package/dist/repositories/billing/createBillingDeviceHistory.js +30 -0
  129. package/dist/repositories/billing/createBillingHubspotPaymentLog.js +61 -0
  130. package/dist/repositories/billing/createBillingStatusHistoryBraintree.js +32 -0
  131. package/dist/repositories/billing/getBillingCustomerBraintreeById.js +18 -0
  132. package/dist/repositories/billing/getBillingKlarnaOrderByImei.js +18 -0
  133. package/dist/repositories/billing/getBillingSubscriptionBraintreeByImei.js +18 -0
  134. package/dist/repositories/billing/getBillingSubscriptionsBraintree.js +25 -0
  135. package/dist/repositories/billing/getBillings.js +42 -0
  136. package/dist/repositories/billing/getCanceledImeis.js +84 -0
  137. package/dist/repositories/billing/getCanceledImeisMatchingMagentoData.js +100 -0
  138. package/dist/repositories/billing/getChurnStatusByClientId.js +27 -0
  139. package/dist/repositories/billing/getClientIdFromBraintreeCustomer.js +20 -0
  140. package/dist/repositories/billing/getMagentoPlan.js +21 -0
  141. package/dist/repositories/billing/getUserByBraintreeCustomerId.js +22 -0
  142. package/dist/repositories/billing/index.js +353 -0
  143. package/dist/repositories/billing/updateBilling.js +43 -0
  144. package/dist/repositories/billing/updateBillingCustomerBraintree.js +37 -0
  145. package/dist/repositories/billing/upsertBillingCustomerBraintree.js +39 -0
  146. package/dist/repositories/billing/upsertBillingKlarnaCustomer.js +52 -0
  147. package/dist/repositories/billing/upsertBillingKlarnaOrder.js +58 -0
  148. package/dist/repositories/billing/upsertBillingSubscriptionBraintree.js +20 -0
  149. package/dist/repositories/blacklist/getBlacklists.js +19 -0
  150. package/dist/repositories/blacklist/index.js +19 -0
  151. package/dist/repositories/boundaries/createBoundary.js +52 -0
  152. package/dist/repositories/boundaries/deleteBoundary.js +23 -0
  153. package/dist/repositories/boundaries/getBoundariesByClientId.js +17 -0
  154. package/dist/repositories/boundaries/getBoundariesIdsByClientId.js +19 -0
  155. package/dist/repositories/boundaries/getBoundariesReport.js +141 -0
  156. package/dist/repositories/boundaries/getBoundaryById.js +14 -0
  157. package/dist/repositories/boundaries/index.js +178 -0
  158. package/dist/repositories/boundaries/processBoundaryEvent.js +211 -0
  159. package/dist/repositories/boundaries/updateBoundary.js +53 -0
  160. package/dist/repositories/boundaries/upsertBoundaryEvent.js +23 -0
  161. package/dist/repositories/clients/createClient.js +35 -0
  162. package/dist/repositories/clients/createClientConfiguration.js +18 -0
  163. package/dist/repositories/clients/createCustomerAttribute.js +16 -0
  164. package/dist/repositories/clients/deleteClientAndConfiguration.js +25 -0
  165. package/dist/repositories/clients/getClient.js +32 -0
  166. package/dist/repositories/clients/getClientConfiguration.js +14 -0
  167. package/dist/repositories/clients/getClients.js +26 -0
  168. package/dist/repositories/clients/getCustomerAttribute.js +14 -0
  169. package/dist/repositories/clients/index.js +192 -0
  170. package/dist/repositories/clients/updateClient.js +52 -0
  171. package/dist/repositories/clients/updateClientConfiguration.js +31 -0
  172. package/dist/repositories/clients/updateCustomerAttribute.js +27 -0
  173. package/dist/repositories/countries/getCountries.js +14 -0
  174. package/dist/repositories/countries/getCountry.js +23 -0
  175. package/dist/repositories/countries/index.js +33 -0
  176. package/dist/repositories/deactivations/createDeactivation.js +16 -0
  177. package/dist/repositories/deactivations/getDeactivationReasons.js +24 -0
  178. package/dist/repositories/deactivations/getLatestDeactivationByImei.js +19 -0
  179. package/dist/repositories/deactivations/index.js +58 -0
  180. package/dist/repositories/deviceBehaviors/createDeviceBehaviorTask.js +48 -0
  181. package/dist/repositories/deviceBehaviors/getDeviceBehaviorTasks.js +40 -0
  182. package/dist/repositories/deviceBehaviors/getDeviceBehaviors.js +41 -0
  183. package/dist/repositories/deviceBehaviors/getDeviceBehaviorsByIds.js +16 -0
  184. package/dist/repositories/deviceBehaviors/getDevicesLastBehaviorTask.js +42 -0
  185. package/dist/repositories/deviceBehaviors/getLatestDeviceBehaviorTasks.js +40 -0
  186. package/dist/repositories/deviceBehaviors/index.js +147 -0
  187. package/dist/repositories/deviceBehaviors/updateDeviceBehaviorTask.js +27 -0
  188. package/dist/repositories/deviceBehaviors/upsertDeviceBehavior.js +20 -0
  189. package/dist/repositories/devicePairings/createDevicePairing.js +21 -0
  190. package/dist/repositories/devicePairings/deleteDevicePairing.js +16 -0
  191. package/dist/repositories/devicePairings/getDevicePairings.js +36 -0
  192. package/dist/repositories/devicePairings/getDevicePairingsByImei.js +20 -0
  193. package/dist/repositories/devicePairings/index.js +90 -0
  194. package/dist/repositories/devicePairings/updateDevicePairing.js +32 -0
  195. package/dist/repositories/devices/createClientDeviceSetting.js +25 -0
  196. package/dist/repositories/devices/createDevice.js +30 -0
  197. package/dist/repositories/devices/createDeviceReplacement.js +34 -0
  198. package/dist/repositories/devices/createDeviceType.js +15 -0
  199. package/dist/repositories/devices/deleteDevice.js +16 -0
  200. package/dist/repositories/devices/generateDeviceIdentifierKey.js +18 -0
  201. package/dist/repositories/devices/getCanceledDevicesWithActiveSimCards.js +40 -0
  202. package/dist/repositories/devices/getCarrierStatusUpdatedBefore.js +40 -0
  203. package/dist/repositories/devices/getClientDeviceSetting.js +20 -0
  204. package/dist/repositories/devices/getClientDeviceSettings.js +17 -0
  205. package/dist/repositories/devices/getDevice.js +33 -0
  206. package/dist/repositories/devices/getDeviceCustomConfig.js +37 -0
  207. package/dist/repositories/devices/getDeviceTypeByImei.js +18 -0
  208. package/dist/repositories/devices/getDeviceTypes.js +30 -0
  209. package/dist/repositories/devices/getDeviceTypesModelsOrderedByDeviceCount.js +27 -0
  210. package/dist/repositories/devices/getDeviceWithUsersInfo.js +59 -0
  211. package/dist/repositories/devices/getDevices.js +46 -0
  212. package/dist/repositories/devices/getFilteredImeisWithStatus.js +20 -0
  213. package/dist/repositories/devices/getIccidStatus.js +17 -0
  214. package/dist/repositories/devices/getImeiIccidCarrier.js +23 -0
  215. package/dist/repositories/devices/getImeiIccidCarriers.js +17 -0
  216. package/dist/repositories/devices/index.js +464 -0
  217. package/dist/repositories/devices/updateClientDeviceSetting.js +38 -0
  218. package/dist/repositories/devices/updateDevice.js +56 -0
  219. package/dist/repositories/devices/updateDeviceType.js +43 -0
  220. package/dist/repositories/devices/updateIccidStatus.js +28 -0
  221. package/dist/repositories/devices/updateImeiIccidCarrier.js +43 -0
  222. package/dist/repositories/devices/upsertIccidStatus.js +36 -0
  223. package/dist/repositories/firmwares/createDeviceFirmware.js +37 -0
  224. package/dist/repositories/firmwares/createFirmwareAutoUpgradeBlacklist.js +16 -0
  225. package/dist/repositories/firmwares/createFirmwareUpgradeTask.js +36 -0
  226. package/dist/repositories/firmwares/getDeviceFirmwares.js +21 -0
  227. package/dist/repositories/firmwares/getFirmwareAutoUpgradeBlacklist.js +23 -0
  228. package/dist/repositories/firmwares/getFirmwareUpgradeTasks.js +105 -0
  229. package/dist/repositories/firmwares/getFirmwareUpgradeTasksCount.js +56 -0
  230. package/dist/repositories/firmwares/index.js +194 -0
  231. package/dist/repositories/firmwares/updateDeviceFirmware.js +41 -0
  232. package/dist/repositories/firmwares/updateFirmwareUpgradeTasks.js +37 -0
  233. package/dist/repositories/index.js +31 -0
  234. package/dist/repositories/notificationRecipients/createNotificationRecipient.js +37 -0
  235. package/dist/repositories/notificationRecipients/deleteNotificationRecipients.js +26 -0
  236. package/dist/repositories/notificationRecipients/deleteNotificationRecipientsByEmailOrPhone.js +28 -0
  237. package/dist/repositories/notificationRecipients/getNotificationRecipients.js +16 -0
  238. package/dist/repositories/notificationRecipients/index.js +131 -0
  239. package/dist/repositories/notificationRecipients/updateNotificationRecipient.js +37 -0
  240. package/dist/repositories/notificationRecipients/updateUsersNotificationsUnsubscribedInfoStatus.js +98 -0
  241. package/dist/repositories/notificationRecipients/updateUsersNotificationsUnsuscribedStatus.js +35 -0
  242. package/dist/repositories/positions/createPosition.js +100 -0
  243. package/dist/repositories/positions/getLatestPositionByImei.js +26 -0
  244. package/dist/repositories/positions/getPositionsByImei.js +23 -0
  245. package/dist/repositories/positions/getPositionsReportByClient.js +87 -0
  246. package/dist/repositories/positions/index.js +101 -0
  247. package/dist/repositories/positions/upsertLatestPosition.js +41 -0
  248. package/dist/repositories/security/createUserRole.js +30 -0
  249. package/dist/repositories/security/getAllRoles.js +8 -0
  250. package/dist/repositories/security/getUserRoles.js +15 -0
  251. package/dist/repositories/security/getUserRolesByClientId.js +17 -0
  252. package/dist/repositories/security/index.js +111 -0
  253. package/dist/repositories/security/removeUserRoles.js +21 -0
  254. package/dist/repositories/security/updateUserRole.js +27 -0
  255. package/dist/repositories/security/userIsAdminOrOwner.js +20 -0
  256. package/dist/repositories/security/userIsInRole.js +18 -0
  257. package/dist/repositories/tasks/addTaskScheduleDevices.js +37 -0
  258. package/dist/repositories/tasks/completeTask.js +25 -0
  259. package/dist/repositories/tasks/createTask.js +22 -0
  260. package/dist/repositories/tasks/createTaskSchedule.js +33 -0
  261. package/dist/repositories/tasks/deleteTask.js +22 -0
  262. package/dist/repositories/tasks/deleteTaskSchedule.js +22 -0
  263. package/dist/repositories/tasks/deleteTaskScheduleDevices.js +17 -0
  264. package/dist/repositories/tasks/getDeviceTasks.js +28 -0
  265. package/dist/repositories/tasks/getTaskSchedule.js +31 -0
  266. package/dist/repositories/tasks/getTaskSchedules.js +75 -0
  267. package/dist/repositories/tasks/getTaskSchedulesCount.js +23 -0
  268. package/dist/repositories/tasks/getTasks.js +29 -0
  269. package/dist/repositories/tasks/getTasksCount.js +20 -0
  270. package/dist/repositories/tasks/index.js +441 -0
  271. package/dist/repositories/tasks/setTaskAsPastDue.js +23 -0
  272. package/dist/repositories/tasks/setTaskScheduleDevices.js +43 -0
  273. package/dist/repositories/tasks/updateTask.js +21 -0
  274. package/dist/repositories/tasks/updateTaskSchedule.js +35 -0
  275. package/dist/repositories/trips/createTrip.js +29 -0
  276. package/dist/repositories/trips/getTripById.js +15 -0
  277. package/dist/repositories/trips/getTrips.js +65 -0
  278. package/dist/repositories/trips/index.js +69 -0
  279. package/dist/repositories/trips/updateTripEndValues.js +36 -0
  280. package/dist/repositories/trips/upsertTrip.js +31 -0
  281. package/dist/repositories/userActivations/createUserActivation.js +26 -0
  282. package/dist/repositories/userActivations/createUserActivationDevice.js +35 -0
  283. package/dist/repositories/userActivations/createUserActivationEvent.js +34 -0
  284. package/dist/repositories/userActivations/createUserActivationMetric.js +28 -0
  285. package/dist/repositories/userActivations/deleteUserActivation.js +22 -0
  286. package/dist/repositories/userActivations/getLastActivationDevice.js +26 -0
  287. package/dist/repositories/userActivations/getUserActivationDevices.js +24 -0
  288. package/dist/repositories/userActivations/getUserActivationDevicesByClientId.js +26 -0
  289. package/dist/repositories/userActivations/getUserActivationMetrics.js +24 -0
  290. package/dist/repositories/userActivations/getUserActivations.js +29 -0
  291. package/dist/repositories/userActivations/index.js +229 -0
  292. package/dist/repositories/userActivations/updateUserActivationDevice.js +39 -0
  293. package/dist/repositories/userActivations/updateUserActivationMetrics.js +61 -0
  294. package/dist/repositories/userAppFeedback/createUserAppFeedback.js +26 -0
  295. package/dist/repositories/userAppFeedback/index.js +23 -0
  296. package/dist/repositories/userAppIncidents/getUserAppIncidents.js +28 -0
  297. package/dist/repositories/userAppIncidents/index.js +63 -0
  298. package/dist/repositories/userAppIncidents/upsertUserAppIncident.js +53 -0
  299. package/dist/repositories/userConfigurations/bulkCreateUserAlertConfigurations.js +46 -0
  300. package/dist/repositories/userConfigurations/createDeviceAlertTimeWindows.js +36 -0
  301. package/dist/repositories/userConfigurations/createUserAlertTimeWindows.js +33 -0
  302. package/dist/repositories/userConfigurations/createUserConfiguration.js +34 -0
  303. package/dist/repositories/userConfigurations/deleteDeviceAlertTimeWindows.js +17 -0
  304. package/dist/repositories/userConfigurations/deleteUserAlertConfigurations.js +24 -0
  305. package/dist/repositories/userConfigurations/deleteUserAlertTimeWindows.js +17 -0
  306. package/dist/repositories/userConfigurations/deleteUserConfiguration.js +23 -0
  307. package/dist/repositories/userConfigurations/getDeviceAlertTimeWindows.js +43 -0
  308. package/dist/repositories/userConfigurations/getUserAlertConfigurations.js +25 -0
  309. package/dist/repositories/userConfigurations/getUserAlertTimeWindows.js +35 -0
  310. package/dist/repositories/userConfigurations/getUserConfigurations.js +31 -0
  311. package/dist/repositories/userConfigurations/index.js +298 -0
  312. package/dist/repositories/userConfigurations/updateDeviceAlertTimeWindows.js +29 -0
  313. package/dist/repositories/userConfigurations/updateUserAlertConfigurations.js +46 -0
  314. package/dist/repositories/userConfigurations/updateUserAlertTimeWindows.js +28 -0
  315. package/dist/repositories/userConfigurations/updateUserConfiguration.js +49 -0
  316. package/dist/repositories/userDataDeletionRequests/createUserDataDeletionRequest.js +28 -0
  317. package/dist/repositories/userDataDeletionRequests/getUserDataDeletionRequest.js +29 -0
  318. package/dist/repositories/userDataDeletionRequests/index.js +66 -0
  319. package/dist/repositories/userDataDeletionRequests/removeUserDataDeletionRequest.js +17 -0
  320. package/dist/repositories/userDataDeletionRequests/updateUserDataDeletionRequest.js +38 -0
  321. package/dist/repositories/userInvitations/createUserInvitation.js +43 -0
  322. package/dist/repositories/userInvitations/getUserInvitationById.js +22 -0
  323. package/dist/repositories/userInvitations/getUserInvitations.js +31 -0
  324. package/dist/repositories/userInvitations/index.js +82 -0
  325. package/dist/repositories/userInvitations/updateUserInvitation.js +50 -0
  326. package/dist/repositories/userRatingRequests/createUserRatingRequest.js +34 -0
  327. package/dist/repositories/userRatingRequests/getUserRatingRequests.js +23 -0
  328. package/dist/repositories/userRatingRequests/index.js +41 -0
  329. package/dist/repositories/userRegistrationAttempts/createUserRegistrationAttempt.js +40 -0
  330. package/dist/repositories/userRegistrationAttempts/getUserRegistrationAttempts.js +29 -0
  331. package/dist/repositories/userRegistrationAttempts/index.js +70 -0
  332. package/dist/repositories/userRegistrationAttempts/updateUserRegistrationAttempt.js +40 -0
  333. package/dist/repositories/users/createUser.js +47 -0
  334. package/dist/repositories/users/deleteAccount.js +98 -0
  335. package/dist/repositories/users/deleteUser.js +22 -0
  336. package/dist/repositories/users/getUserById.js +22 -0
  337. package/dist/repositories/users/getUserData.js +66 -0
  338. package/dist/repositories/users/getUsers.js +49 -0
  339. package/dist/repositories/users/getUsersConfigurationByImei.js +29 -0
  340. package/dist/repositories/users/getUsersIdByPhoneAndCountryCode.js +21 -0
  341. package/dist/repositories/users/getUsersWithRoles.js +32 -0
  342. package/dist/repositories/users/index.js +195 -0
  343. package/dist/repositories/users/updateUser.js +109 -0
  344. package/dist/subscribers/allEntitiesSubscriber.js +52 -0
  345. package/dist/subscribers/index.js +2 -0
  346. package/dist/types/acumatica.js +1 -0
  347. package/dist/types/aempToken.js +1 -0
  348. package/dist/types/alert.js +1 -0
  349. package/dist/types/alertTypes.js +1 -0
  350. package/dist/types/appFeatures.js +1 -0
  351. package/dist/types/billing.js +1 -0
  352. package/dist/types/blacklist.js +1 -0
  353. package/dist/types/boundaries.js +1 -0
  354. package/dist/types/clients.js +1 -0
  355. package/dist/types/common.js +1 -0
  356. package/dist/types/countries.js +1 -0
  357. package/dist/types/deactivations.js +1 -0
  358. package/dist/types/deviceBehaviors.js +1 -0
  359. package/dist/types/devicePairings.js +1 -0
  360. package/dist/types/devices.js +1 -0
  361. package/dist/types/enums.js +74 -0
  362. package/dist/types/firmwares.js +17 -0
  363. package/dist/types/index.js +30 -0
  364. package/dist/types/logger.js +9 -0
  365. package/dist/types/notificationRecipients.js +1 -0
  366. package/dist/types/position.js +1 -0
  367. package/dist/types/security.js +1 -0
  368. package/dist/types/tasks.js +1 -0
  369. package/dist/types/trip.js +29 -0
  370. package/dist/types/user.js +1 -0
  371. package/dist/types/userActivations.js +1 -0
  372. package/dist/types/userAppFeedback.js +1 -0
  373. package/dist/types/userAppIncidents.js +1 -0
  374. package/dist/types/userConfigurations.js +1 -0
  375. package/dist/types/userDataDeletionRequests.js +1 -0
  376. package/dist/types/userInvitations.js +1 -0
  377. package/dist/types/userRatingRequests.js +1 -0
  378. package/dist/types/userRegistrationAttempts.js +1 -0
  379. package/dist/utils/anyAttributeHasValue.js +20 -0
  380. package/dist/utils/anyAttributeIsNull.js +12 -0
  381. package/dist/utils/boolToNumberTransformer.js +23 -0
  382. package/dist/utils/consoleLogger.js +42 -0
  383. package/dist/utils/filterTools.js +299 -0
  384. package/dist/utils/mapRawEntityToEntity.js +12 -0
  385. package/dist/utils/queryLogger.js +48 -0
  386. package/dist/utils/randomizer.js +39 -0
  387. package/dist/utils/stringToDateTransformer.js +16 -0
  388. package/dist/utils/uuidHelpers.js +30 -0
  389. package/package.json +10 -8
  390. package/dist/index.js.LICENSE.txt +0 -41
@@ -0,0 +1,28 @@
1
+ import { AlertTimeWindowConfiguration } from '../../entities';
2
+ export const updateUserAlertTimeWindows = async (novaDataSource, params, logger) => {
3
+ // userId filter is required
4
+ if (!params?.filters?.configId) {
5
+ logger.warn({ params }, 'UserConfigurationsRepository::updateUserAlertConfigurations - missing required parameters');
6
+ return false;
7
+ }
8
+ if (Object.values(params?.values).every(value => value === null || value === undefined)) {
9
+ logger.warn({ params }, 'UserConfigurationsRepository::updateUserAlertConfigurations - missing required parameters');
10
+ return false;
11
+ }
12
+ return novaDataSource.safeQuery(async (dataSource) => {
13
+ const userAlertConfigurationsRepository = dataSource.getRepository(AlertTimeWindowConfiguration);
14
+ const queryBuilder = userAlertConfigurationsRepository
15
+ .createQueryBuilder()
16
+ .update(AlertTimeWindowConfiguration)
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
+ label: params?.values?.label ?? undefined,
23
+ })
24
+ .where('id = :id', { id: params?.filters?.configId });
25
+ const result = await queryBuilder.execute();
26
+ return result.affected > 0;
27
+ }, 'UserConfigurationsRepository::updateUserAlertConfiguration');
28
+ };
@@ -0,0 +1,49 @@
1
+ import { UserConfiguration } from '../../entities/userConfiguration';
2
+ import { uuidStringToBinaryBuffer } from '../../utils/uuidHelpers';
3
+ export const updateUserConfiguration = async (novaDataSource, params, logger) => {
4
+ // userId filter is required
5
+ if (!params?.filters?.userId) {
6
+ logger.warn({ params }, 'UserConfigurationsRepository::updateUserConfiguration - 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::updateUserConfiguration - user id should be a valid UUID');
12
+ return false;
13
+ }
14
+ // at least one field to update is required
15
+ if (!params?.values?.timezone &&
16
+ !params?.values?.defaultMapLayer &&
17
+ !params?.values?.speedUnits &&
18
+ !params?.values?.distanceUnits &&
19
+ params?.values?.alertsNotificationsOn == null &&
20
+ !params?.values?.dataSourceTypeId &&
21
+ !params?.values?.homepage &&
22
+ !params?.values?.temperatureUnits &&
23
+ !params?.values?.addressFormat) {
24
+ logger.warn({ params }, 'UserConfigurationsRepository::updateUserConfiguration - missing required parameters');
25
+ return false;
26
+ }
27
+ return novaDataSource.safeQuery(async (dataSource) => {
28
+ const userConfigurationsRepository = dataSource.getRepository(UserConfiguration);
29
+ const now = new Date();
30
+ const queryBuilder = userConfigurationsRepository
31
+ .createQueryBuilder()
32
+ .update(UserConfiguration)
33
+ .set({
34
+ timezone: params.values.timezone,
35
+ defaultMapLayer: params.values.defaultMapLayer,
36
+ speedUnits: params.values.speedUnits,
37
+ distanceUnits: params.values.distanceUnits,
38
+ alertsNotificationsOn: params.values.alertsNotificationsOn,
39
+ dataSourceTypeId: params.values.dataSourceTypeId,
40
+ homepage: params.values.homepage,
41
+ temperatureUnits: params.values.temperatureUnits,
42
+ modifiedAt: now,
43
+ addressFormat: params.values.addressFormat,
44
+ })
45
+ .where('userId = :userId', { userId: userIdBinaryBuffer });
46
+ const result = await queryBuilder.execute();
47
+ return result.affected > 0;
48
+ }, 'UserConfigurationsRepository::updateUserConfiguration');
49
+ };
@@ -0,0 +1,28 @@
1
+ import { UserDataDeletionRequest } from '../../entities';
2
+ import { uuidStringToBinaryBuffer } from '../../utils/uuidHelpers';
3
+ export const createUserDataDeletionRequest = async (novaDataSource, params, logger) => {
4
+ if (!params?.userId || !params?.clientId || !params?.email || !params?.userSecurityRoleName) {
5
+ logger.warn({ params }, 'UserDataDeletionRequestsRepository::createUserDataDeletionRequest - missing required parameters');
6
+ return null;
7
+ }
8
+ const userIdBinaryBuffer = uuidStringToBinaryBuffer(params?.userId);
9
+ if (!userIdBinaryBuffer?.length) {
10
+ logger.warn({ userId: params?.userId }, 'UserDataDeletionRequestsRepository::createUserDataDeletionRequest - user id should be a valid UUID');
11
+ return null;
12
+ }
13
+ return novaDataSource.safeQuery(async (dataSource) => {
14
+ const userDataDeletionRequestsRepository = dataSource.getRepository(UserDataDeletionRequest);
15
+ const now = new Date();
16
+ const newUserDataDeletionRequest = {
17
+ id: params?.id,
18
+ userId: userIdBinaryBuffer,
19
+ clientId: params.clientId,
20
+ email: params.email,
21
+ userSecurityRoleName: params.userSecurityRoleName,
22
+ status: params.status,
23
+ createdAt: now,
24
+ modifiedAt: now,
25
+ };
26
+ return await userDataDeletionRequestsRepository.save(newUserDataDeletionRequest);
27
+ }, 'UserDataDeletionRequestsRepository::createUserDataDeletionRequest');
28
+ };
@@ -0,0 +1,29 @@
1
+ import { UserDataDeletionRequest } from '../../entities';
2
+ import { uuidStringToBinaryBuffer } from '../../utils/uuidHelpers';
3
+ export const getUserDataDeletionRequest = async (novaDataSource, params, logger) => {
4
+ if (!params?.filters?.userId && !params?.filters?.id) {
5
+ logger.warn({ params }, 'UserDataDeletionRequestsRepository::getUserDataDeletionRequest - missing required parameters');
6
+ return null;
7
+ }
8
+ const binaryBuffer = uuidStringToBinaryBuffer(params?.filters?.userId);
9
+ if (params?.filters?.userId && !binaryBuffer?.length) {
10
+ logger.warn({ params }, 'UserDataDeletionRequestsRepository::getUserDataDeletionRequest - user id should be a valid UUID');
11
+ return null;
12
+ }
13
+ return novaDataSource.safeQuery(async (dataSource) => {
14
+ const userDataDeletionRequestsRepository = dataSource.getRepository(UserDataDeletionRequest);
15
+ let queryBuilder = userDataDeletionRequestsRepository.createQueryBuilder('userDataDeletionRequest');
16
+ if (params?.filters?.id) {
17
+ queryBuilder = queryBuilder.where('userDataDeletionRequest.id = :id', {
18
+ id: params?.filters?.id,
19
+ });
20
+ }
21
+ if (params?.filters?.userId) {
22
+ queryBuilder = queryBuilder.where('userDataDeletionRequest.userId = :userId', {
23
+ userId: binaryBuffer,
24
+ });
25
+ }
26
+ const result = await queryBuilder.getOne();
27
+ return result;
28
+ }, 'UserDataDeletionRequestsRepository::getUserDataDeletionRequest');
29
+ };
@@ -0,0 +1,66 @@
1
+ import { NovaDataSource } from '../../novaDataSource';
2
+ import { BaseRepository } from '../baseRepository';
3
+ import { createUserDataDeletionRequest } from './createUserDataDeletionRequest';
4
+ import { getUserDataDeletionRequest } from './getUserDataDeletionRequest';
5
+ import { removeUserDataDeletionRequest } from './removeUserDataDeletionRequest';
6
+ import { updateUserDataDeletionRequest } from './updateUserDataDeletionRequest';
7
+ export class UserDataDeletionRequestsRepository extends BaseRepository {
8
+ /**
9
+ * Get user data deletion request
10
+ * @param {GetUserDataDeletionRequestParams} params containing information to get a user data deletion request
11
+ * - filters.userId: The user id
12
+ * @returns The user data deletion request information
13
+ */
14
+ async getUserDataDeletionRequest(params) {
15
+ this.logger.trace(params, 'UserDataDeletionRequestsRepository::getUserDataDeletionRequest started with params');
16
+ const novaDataSource = new NovaDataSource(this.novaDataSourceConfig, this.logger);
17
+ const result = await getUserDataDeletionRequest(novaDataSource, params, this.logger);
18
+ this.logger.trace(result, 'UserDataDeletionRequestsRepository::getUserDataDeletionRequest result');
19
+ return result;
20
+ }
21
+ /**
22
+ * Create user data deletion request
23
+ * @param {CreateUserDataDeletionRequestParams} params containing information to create a user data deletion request
24
+ * - id: The id, optional. If not provided, it will be generated
25
+ * - userId: The user id, required
26
+ * - clientId: The client id, required
27
+ * - userSecurityRoleName: The user security role name, required
28
+ * - email: The email, required
29
+ * - status: The status, optional
30
+ * @returns The created user data deletion request information
31
+ */
32
+ async createUserDataDeletionRequest(params) {
33
+ this.logger.trace(params, 'UserDataDeletionRequestsRepository::createUserDataDeletionRequest started with params');
34
+ const novaDataSource = new NovaDataSource(this.novaDataSourceConfig, this.logger);
35
+ const result = await createUserDataDeletionRequest(novaDataSource, params, this.logger);
36
+ this.logger.trace(result, 'UserDataDeletionRequestsRepository::createUserDataDeletionRequest result');
37
+ return result;
38
+ }
39
+ /**
40
+ * Update user data deletion request
41
+ * @param {UpdateUserDataDeletionRequestParams} params containing information to update a user data deletion request
42
+ * - filters.userId: The user id
43
+ * - values.status: The status
44
+ * @returns Whether the user data deletion request was updated
45
+ */
46
+ async updateUserDataDeletionRequest(params) {
47
+ this.logger.trace(params, 'UserDataDeletionRequestsRepository::updateUserDataDeletionRequest started with params');
48
+ const novaDataSource = new NovaDataSource(this.novaDataSourceConfig, this.logger);
49
+ const result = await updateUserDataDeletionRequest(novaDataSource, params, this.logger);
50
+ this.logger.trace({ result }, 'UserDataDeletionRequestsRepository::updateUserDataDeletionRequest result');
51
+ return result;
52
+ }
53
+ /**
54
+ * Remove user data deletion request
55
+ * @param {RemoveUserDataDeletionRequestParams} params containing information to remove a user data deletion request
56
+ * - filters.id: The user data deletion request id
57
+ * @returns Whether the user data deletion request was removed
58
+ */
59
+ async removeUserDataDeletionRequest(params) {
60
+ this.logger.trace(params, 'UserDataDeletionRequestsRepository::removeUserDataDeletionRequest started with params');
61
+ const novaDataSource = new NovaDataSource(this.novaDataSourceConfig, this.logger);
62
+ const result = await removeUserDataDeletionRequest(novaDataSource, params, this.logger);
63
+ this.logger.trace({ result }, 'UserDataDeletionRequestsRepository::removeUserDataDeletionRequest result');
64
+ return result;
65
+ }
66
+ }
@@ -0,0 +1,17 @@
1
+ import { UserDataDeletionRequest } from '../../entities';
2
+ export const removeUserDataDeletionRequest = async (novaDataSource, params, logger) => {
3
+ // filter is required
4
+ if (!params?.filters?.id) {
5
+ logger.warn({ params }, 'UserDataDeletionRequestsRepository::removeUserDataDeletionRequest - missing required parameters');
6
+ return false;
7
+ }
8
+ return novaDataSource.safeQuery(async (dataSource) => {
9
+ const userDataDeletionRequestsRepository = dataSource.getRepository(UserDataDeletionRequest);
10
+ const queryBuilder = userDataDeletionRequestsRepository
11
+ .createQueryBuilder()
12
+ .delete()
13
+ .where('id = :id', { id: params?.filters?.id });
14
+ const result = await queryBuilder.execute();
15
+ return result.affected > 0;
16
+ }, 'UserDataDeletionRequestsRepository::removeUserDataDeletionRequest');
17
+ };
@@ -0,0 +1,38 @@
1
+ import { UserDataDeletionRequest } from '../../entities';
2
+ import { uuidStringToBinaryBuffer } from '../../utils/uuidHelpers';
3
+ export const updateUserDataDeletionRequest = async (novaDataSource, params, logger) => {
4
+ // at least one filter is required
5
+ if (!params?.filters?.userId && !params?.filters?.id) {
6
+ logger.warn({ params }, 'UserDataDeletionRequestsRepository::updateUserDataDeletionRequest - missing required parameters');
7
+ return false;
8
+ }
9
+ // values is required
10
+ if (!params?.values?.status) {
11
+ logger.warn({ params }, 'UserDataDeletionRequestsRepository::updateUserDataDeletionRequest - missing required parameters');
12
+ return false;
13
+ }
14
+ const userIdBinaryBuffer = uuidStringToBinaryBuffer(params?.filters?.userId);
15
+ if (params?.filters?.userId && !userIdBinaryBuffer?.length) {
16
+ logger.warn({ userId: params?.filters?.userId }, 'UserDataDeletionRequestsRepository::updateUserDataDeletionRequest - user id should be a valid UUID');
17
+ return false;
18
+ }
19
+ return novaDataSource.safeQuery(async (dataSource) => {
20
+ const userDataDeletionRequestsRepository = dataSource.getRepository(UserDataDeletionRequest);
21
+ const now = new Date();
22
+ let queryBuilder = userDataDeletionRequestsRepository
23
+ .createQueryBuilder()
24
+ .update(UserDataDeletionRequest)
25
+ .set({
26
+ status: params?.values?.status,
27
+ modifiedAt: now,
28
+ });
29
+ if (params?.filters?.id) {
30
+ queryBuilder = queryBuilder.where('id = :id', { id: params?.filters?.id });
31
+ }
32
+ if (params?.filters?.userId) {
33
+ queryBuilder = queryBuilder.andWhere('userId = :userId', { userId: userIdBinaryBuffer });
34
+ }
35
+ const result = await queryBuilder.execute();
36
+ return result.affected > 0;
37
+ }, 'UserDataDeletionRequestsRepository::updateUserDataDeletionRequest');
38
+ };
@@ -0,0 +1,43 @@
1
+ import { UserInvitation } from '../../entities';
2
+ import { uuidStringToBinaryBuffer } from '../../utils/uuidHelpers';
3
+ export const createUserInvitation = async (novaDataSource, params, logger) => {
4
+ if (!params?.id ||
5
+ !params?.inviterClientId ||
6
+ !params?.inviterUserId ||
7
+ !params?.inviteeEmail ||
8
+ !params?.inviteeSecurityRoleId ||
9
+ !params?.statusId) {
10
+ logger.warn({ params }, 'UsersRepository::createUserInvitation - missing required parameters');
11
+ return null;
12
+ }
13
+ const invitationIdBinaryBuffer = uuidStringToBinaryBuffer(params?.id);
14
+ if (!invitationIdBinaryBuffer?.length) {
15
+ logger.warn({ invitationId: params?.id }, 'UsersRepository::createUserInvitation - user invitation id should be a valid UUID');
16
+ return null;
17
+ }
18
+ const inviterUserIdBinaryBuffer = uuidStringToBinaryBuffer(params?.inviterUserId);
19
+ if (!inviterUserIdBinaryBuffer?.length) {
20
+ logger.warn({ inviterUserId: params?.inviterUserId }, 'UsersRepository::createUserInvitation - inviter user id should be a valid UUID');
21
+ return null;
22
+ }
23
+ return novaDataSource.safeQuery(async (dataSource) => {
24
+ const userInvitationsRepository = dataSource.getRepository(UserInvitation);
25
+ const now = new Date();
26
+ const newUserInvitation = {
27
+ id: invitationIdBinaryBuffer,
28
+ inviterClientId: params.inviterClientId,
29
+ inviterUserId: inviterUserIdBinaryBuffer,
30
+ inviteeEmail: params.inviteeEmail,
31
+ inviteeSecurityRoleId: params.inviteeSecurityRoleId,
32
+ statusId: params.statusId,
33
+ trackerImeis: params.trackerImeis,
34
+ trackerAccess: params.trackerAccess,
35
+ minAccessDate: params.minAccessDate,
36
+ boundaries: params.boundaries,
37
+ boundaryAccess: params.boundaryAccess,
38
+ createdAt: now,
39
+ modifiedAt: now,
40
+ };
41
+ return await userInvitationsRepository.save(newUserInvitation);
42
+ }, 'UsersRepository::createUserInvitation');
43
+ };
@@ -0,0 +1,22 @@
1
+ import { UserInvitation } from '../../entities';
2
+ import { uuidStringToBinaryBuffer } from '../../utils/uuidHelpers';
3
+ export const getUserInvitationById = async (novaDataSource, params, logger) => {
4
+ if (!params?.filters?.id) {
5
+ logger.warn({ params }, 'UserInvitationsRepository::getUserInvitationById - missing required parameters');
6
+ return null;
7
+ }
8
+ const binaryBuffer = uuidStringToBinaryBuffer(params?.filters?.id);
9
+ if (!binaryBuffer?.length) {
10
+ logger.warn({ params }, 'UserInvitationsRepository::getUserInvitationById - user invitation id should be a valid UUID');
11
+ return null;
12
+ }
13
+ return novaDataSource.safeQuery(async (dataSource) => {
14
+ const userInvitationsRepository = dataSource.getRepository(UserInvitation);
15
+ let queryBuilder = userInvitationsRepository.createQueryBuilder('userInvitation');
16
+ queryBuilder = queryBuilder.where('userInvitation.id = :id', {
17
+ id: binaryBuffer,
18
+ });
19
+ const result = await queryBuilder.getOne();
20
+ return result;
21
+ }, 'UserInvitationsRepository::getUserInvitationById');
22
+ };
@@ -0,0 +1,31 @@
1
+ import { UserInvitation } from '../../entities';
2
+ export const getUserInvitations = async (novaDataSource, params, logger) => {
3
+ if (!params?.filters?.inviteeEmails?.length &&
4
+ !params?.filters?.inviterClientId &&
5
+ !params?.filters?.statusList?.length) {
6
+ logger.warn({ params }, 'UserInvitationsRepository::getUserInvitations - missing required parameters');
7
+ return [];
8
+ }
9
+ return novaDataSource.safeQuery(async (dataSource) => {
10
+ const userInvitationsRepository = dataSource.getRepository(UserInvitation);
11
+ let queryBuilder = userInvitationsRepository.createQueryBuilder('userInvitation');
12
+ if (params?.filters?.inviteeEmails?.length) {
13
+ queryBuilder = queryBuilder.andWhere('LOWER(userInvitation.inviteeEmail) IN (:...inviteeEmails)', {
14
+ inviteeEmails: params.filters.inviteeEmails.map(email => email.trim().toLowerCase()),
15
+ });
16
+ }
17
+ if (params?.filters?.inviterClientId) {
18
+ queryBuilder = queryBuilder.andWhere('userInvitation.inviterClientId = :inviterClientId', {
19
+ inviterClientId: params.filters.inviterClientId,
20
+ });
21
+ }
22
+ if (params?.filters?.statusList?.length) {
23
+ queryBuilder = queryBuilder.andWhere('userInvitation.statusId IN (:...statusList)', {
24
+ statusList: params.filters.statusList,
25
+ });
26
+ }
27
+ queryBuilder = queryBuilder.orderBy('userInvitation.createdAt', 'DESC');
28
+ const result = await queryBuilder.getMany();
29
+ return result;
30
+ }, 'UserInvitationsRepository::getUserInvitations');
31
+ };
@@ -0,0 +1,82 @@
1
+ import { NovaDataSource } from '../../novaDataSource';
2
+ import { BaseRepository } from '../baseRepository';
3
+ import { createUserInvitation } from './createUserInvitation';
4
+ import { getUserInvitationById } from './getUserInvitationById';
5
+ import { getUserInvitations } from './getUserInvitations';
6
+ import { updateUserInvitation } from './updateUserInvitation';
7
+ export class UserInvitationsRepository extends BaseRepository {
8
+ /**
9
+ * Get user invitation by id
10
+ * @param {GetUserInvitationByIdParams} params containing information to get a user invitation by id
11
+ * - filters.id: The user invitation id
12
+ * @returns The user invitation information
13
+ */
14
+ async getUserInvitationById(params) {
15
+ this.logger.trace(params, 'UserInvitationsRepository::getUserInvitationById started with params');
16
+ const novaDataSource = new NovaDataSource(this.novaDataSourceConfig, this.logger);
17
+ const result = await getUserInvitationById(novaDataSource, params, this.logger);
18
+ this.logger.trace(result, 'UserInvitationsRepository::getUserInvitationById result');
19
+ return result;
20
+ }
21
+ /**
22
+ * Get user invitations with filters
23
+ * @param {GetUserInvitationsParams} params containing information to get user invitations
24
+ * - filters.inviterClientId: The inviter client id
25
+ * - filters.inviteeEmails: The array of invitee emails to filter by
26
+ * - filters.statusList: The array of status list to filter by
27
+ * @returns The user invitations list
28
+ */
29
+ async getUserInvitations(params) {
30
+ this.logger.trace(params, 'UserInvitationsRepository::getUserInvitations started with params');
31
+ const novaDataSource = new NovaDataSource(this.novaDataSourceConfig, this.logger);
32
+ const result = await getUserInvitations(novaDataSource, params, this.logger);
33
+ this.logger.trace(result, 'UserInvitationsRepository::getUserInvitations result');
34
+ return result;
35
+ }
36
+ /**
37
+ * Update user invitation
38
+ * @param {UpdateUserInvitationParams} params containing information to update a user invitation
39
+ * - filters.id: The user invitation id
40
+ * At least one value must be provided:
41
+ * - values.statusId: The status id, optional
42
+ * - values.inviteeUserId: The invitee user id, optional
43
+ * - values.inviteeEmail: The invitee email, optional
44
+ * - values.inviteeSecurityRoleId: The invitee security role id, optional
45
+ * - values.trackerImeis: The tracker imeis, optional
46
+ * - values.trackerAccess: The tracker access, optional
47
+ * - values.minAccessDate: The min access date, optional
48
+ * - values.boundaries: The boundaries, optional
49
+ * - values.boundaryAccess: The boundary access, optional
50
+ * @returns Whether the user invitation was updated or not
51
+ */
52
+ async updateUserInvitation(params) {
53
+ this.logger.trace(params, 'UserInvitationsRepository::updateUserInvitation started with params');
54
+ const novaDataSource = new NovaDataSource(this.novaDataSourceConfig, this.logger);
55
+ const result = await updateUserInvitation(novaDataSource, params, this.logger);
56
+ this.logger.trace({ result }, 'UserInvitationsRepository::updateUserInvitation result');
57
+ return result;
58
+ }
59
+ /**
60
+ * Create user invitation
61
+ * @param {CreateUserInvitationParams} params containing information to create a user invitation
62
+ * - id: The user invitation id, required
63
+ * - inviterClientId: The inviter client id, required
64
+ * - inviterUserId: The inviter user id, required
65
+ * - inviteeEmail: The invitee email, required
66
+ * - inviteeSecurityRoleId: The invitee security role id, required
67
+ * - statusId: The status id, required
68
+ * - trackerImeis: The tracker imeis, optional
69
+ * - trackerAccess: The tracker access, optional
70
+ * - minAccessDate: The min access date, optional
71
+ * - boundaries: The boundaries, optional
72
+ * - boundaryAccess: The boundary access, optional
73
+ * @returns The created user invitation
74
+ */
75
+ async createUserInvitation(params) {
76
+ this.logger.trace(params, 'UserInvitationsRepository::createUserInvitation started with params');
77
+ const novaDataSource = new NovaDataSource(this.novaDataSourceConfig, this.logger);
78
+ const result = await createUserInvitation(novaDataSource, params, this.logger);
79
+ this.logger.trace({ result }, 'UserInvitationsRepository::createUserInvitation result');
80
+ return result;
81
+ }
82
+ }
@@ -0,0 +1,50 @@
1
+ import { UserInvitation } from '../../entities';
2
+ import { uuidStringToBinaryBuffer } from '../../utils/uuidHelpers';
3
+ export const updateUserInvitation = async (novaDataSource, params, logger) => {
4
+ // filter is required
5
+ if (!params?.filters?.id) {
6
+ logger.warn({ params }, 'UsersRepository::updateUserInvitation - missing required parameters');
7
+ return false;
8
+ }
9
+ const invitationIdBinaryBuffer = uuidStringToBinaryBuffer(params?.filters?.id);
10
+ if (!invitationIdBinaryBuffer?.length) {
11
+ logger.warn({ invitationId: params?.filters?.id }, 'UsersRepository::updateUserInvitation - user invitation id should be a valid UUID');
12
+ return false;
13
+ }
14
+ const inviteeUserIdBinaryBuffer = uuidStringToBinaryBuffer(params?.values?.inviteeUserId);
15
+ // at least one field to update is required
16
+ if (!params?.values?.statusId &&
17
+ !inviteeUserIdBinaryBuffer?.length &&
18
+ !params?.values?.inviteeEmail &&
19
+ !params?.values?.inviteeSecurityRoleId &&
20
+ !params?.values?.trackerImeis &&
21
+ !params?.values?.trackerAccess &&
22
+ !params?.values?.minAccessDate &&
23
+ !params?.values?.boundaries &&
24
+ !params?.values?.boundaryAccess) {
25
+ logger.warn({ params }, 'UsersRepository::updateUserInvitation - missing required parameters');
26
+ return false;
27
+ }
28
+ return novaDataSource.safeQuery(async (dataSource) => {
29
+ const userInvitationsRepository = dataSource.getRepository(UserInvitation);
30
+ const now = new Date();
31
+ let queryBuilder = userInvitationsRepository
32
+ .createQueryBuilder()
33
+ .update(UserInvitation)
34
+ .set({
35
+ statusId: params?.values?.statusId,
36
+ inviteeUserId: inviteeUserIdBinaryBuffer,
37
+ inviteeEmail: params?.values?.inviteeEmail,
38
+ inviteeSecurityRoleId: params?.values?.inviteeSecurityRoleId,
39
+ trackerImeis: params?.values?.trackerImeis,
40
+ trackerAccess: params?.values?.trackerAccess,
41
+ minAccessDate: params?.values?.minAccessDate,
42
+ boundaries: params?.values?.boundaries,
43
+ boundaryAccess: params?.values?.boundaryAccess,
44
+ modifiedAt: now,
45
+ });
46
+ queryBuilder = queryBuilder.where('id = :id', { id: invitationIdBinaryBuffer });
47
+ const result = await queryBuilder.execute();
48
+ return result.affected > 0;
49
+ }, 'UsersRepository::updateUserInvitation');
50
+ };
@@ -0,0 +1,34 @@
1
+ import { UserRatingRequest } from '../../entities';
2
+ import { uuidStringToBinaryBuffer } from '../../utils/uuidHelpers';
3
+ export const createUserRatingRequest = async (novaDataSource, params, logger) => {
4
+ if (!params?.userId ||
5
+ !params?.clientId ||
6
+ !params?.deviceManufacturer ||
7
+ !params?.deviceOs ||
8
+ !params.deviceOsVersion ||
9
+ !params?.appVersion) {
10
+ logger.warn({ params }, 'UserRatingRequestsRepository::createUserRatingRequest - missing required parameters');
11
+ return null;
12
+ }
13
+ const userIdBinaryBuffer = uuidStringToBinaryBuffer(params?.userId);
14
+ if (!userIdBinaryBuffer?.length) {
15
+ logger.warn({ userId: params?.userId }, 'UserRatingRequestsRepository::createUserRatingRequest - user id should be a valid UUID');
16
+ return null;
17
+ }
18
+ return novaDataSource.safeQuery(async (dataSource) => {
19
+ const userRatingRequestsRepository = dataSource.getRepository(UserRatingRequest);
20
+ const newUserRatingRequest = {
21
+ id: params?.id,
22
+ userId: userIdBinaryBuffer,
23
+ clientId: params.clientId,
24
+ deviceManufacturer: params.deviceManufacturer,
25
+ deviceOs: params.deviceOs,
26
+ deviceOsVersion: params.deviceOsVersion,
27
+ appVersion: params.appVersion,
28
+ requestDate: params.requestDate,
29
+ amazonRequestDate: params.amazonRequestDate,
30
+ deviceIdentifierKey: params.deviceIdentifierKey,
31
+ };
32
+ return await userRatingRequestsRepository.save(newUserRatingRequest);
33
+ }, 'UserRatingRequestsRepository::createUserRatingRequest');
34
+ };
@@ -0,0 +1,23 @@
1
+ import { UserRatingRequest } from '../../entities';
2
+ import { uuidStringToBinaryBuffer } from '../../utils/uuidHelpers';
3
+ export const getUserRatingRequests = async (novaDataSource, params, logger) => {
4
+ if (!params?.filters?.userId) {
5
+ logger.warn({ params }, 'UserRatingRequestsRepository::getUserRatingRequests - missing required parameters');
6
+ return [];
7
+ }
8
+ const binaryBuffer = uuidStringToBinaryBuffer(params?.filters?.userId);
9
+ if (!binaryBuffer?.length) {
10
+ logger.warn({ params }, 'UserRatingRequestsRepository::getUserRatingRequests - user id should be a valid UUID');
11
+ return [];
12
+ }
13
+ return novaDataSource.safeQuery(async (dataSource) => {
14
+ const userRatingRequestsRepository = dataSource.getRepository(UserRatingRequest);
15
+ let queryBuilder = userRatingRequestsRepository.createQueryBuilder('userRatingRequest');
16
+ queryBuilder = queryBuilder.where('userRatingRequest.userId = :userId', {
17
+ userId: binaryBuffer,
18
+ });
19
+ queryBuilder = queryBuilder.orderBy('userRatingRequest.requestDate', 'DESC');
20
+ const result = await queryBuilder.getMany();
21
+ return result;
22
+ }, 'UserRatingRequestsRepository::getUserRatingRequests');
23
+ };
@@ -0,0 +1,41 @@
1
+ import { NovaDataSource } from '../../novaDataSource';
2
+ import { BaseRepository } from '../baseRepository';
3
+ import { createUserRatingRequest } from './createUserRatingRequest';
4
+ import { getUserRatingRequests } from './getUserRatingRequests';
5
+ export class UserRatingRequestsRepository extends BaseRepository {
6
+ /**
7
+ * Get user rating requests
8
+ * @param {GetUserRatingRequestsParams} params containing information to get a user rating requests
9
+ * - filters.userId: The user id
10
+ * @returns The user rating requests list
11
+ */
12
+ async getUserRatingRequests(params) {
13
+ this.logger.trace(params, 'UserRatingRequestsRepository::getUserRatingRequests started with params');
14
+ const novaDataSource = new NovaDataSource(this.novaDataSourceConfig, this.logger);
15
+ const result = await getUserRatingRequests(novaDataSource, params, this.logger);
16
+ this.logger.trace(result, 'UserRatingRequestsRepository::getUserRatingRequests result');
17
+ return result;
18
+ }
19
+ /**
20
+ * Create user rating request
21
+ * @param {CreateUserRatingRequestParams} params containing information to create a user rating request
22
+ * - id: The id, optional. If not provided, it will be generated
23
+ * - userId: The user id, required
24
+ * - clientId: The client id, required
25
+ * - deviceManufacturer: The device manufacturer, required
26
+ * - deviceOs: The device os, required
27
+ * - deviceOsVersion: The device os version, required
28
+ * - appVersion: The app version, required
29
+ * - requestDate: The request date, optional
30
+ * - amazonRequestDate: The amazon request date, optional
31
+ * - deviceIdentifierKey: The device identifier key, optional
32
+ * @returns The created user rating request information
33
+ */
34
+ async createUserRatingRequest(params) {
35
+ this.logger.trace(params, 'UserRatingRequestsRepository::createUserRatingRequest started with params');
36
+ const novaDataSource = new NovaDataSource(this.novaDataSourceConfig, this.logger);
37
+ const result = await createUserRatingRequest(novaDataSource, params, this.logger);
38
+ this.logger.trace(result, 'UserRatingRequestsRepository::createUserRatingRequest result');
39
+ return result;
40
+ }
41
+ }
@@ -0,0 +1,40 @@
1
+ import { UserRegistrationAttempt } from '../../entities';
2
+ import { uuidStringToBinaryBuffer } from '../../utils/uuidHelpers';
3
+ export const createUserRegistrationAttempt = async (novaDataSource, params, logger) => {
4
+ if (!params?.firstName &&
5
+ !params?.lastName &&
6
+ !params?.email &&
7
+ !params?.phoneNumber &&
8
+ !params?.phoneCode &&
9
+ !params?.phoneCodeCountryId &&
10
+ !params?.imei &&
11
+ !params?.platform &&
12
+ !params?.status &&
13
+ !params?.tempUserId) {
14
+ logger.warn({ params }, 'UserRegistrationAttemptsRepository::createUserRegistrationAttempt - missing required parameters');
15
+ return null;
16
+ }
17
+ const tempUserIdBinaryBuffer = uuidStringToBinaryBuffer(params?.tempUserId);
18
+ if (params?.tempUserId && !tempUserIdBinaryBuffer?.length) {
19
+ logger.warn({ params }, 'UserRegistrationAttemptsRepository::getUserRegistrationAttempts - temp user id should be a valid UUID');
20
+ return null;
21
+ }
22
+ return novaDataSource.safeQuery(async (dataSource) => {
23
+ const userRegistrationAttemptsRepository = dataSource.getRepository(UserRegistrationAttempt);
24
+ const newUserRegistrationAttempt = {
25
+ id: params?.id,
26
+ firstName: params?.firstName,
27
+ lastName: params?.lastName,
28
+ email: params?.email,
29
+ phoneNumber: params?.phoneNumber,
30
+ phoneCode: params?.phoneCode,
31
+ phoneCodeCountryId: params?.phoneCodeCountryId,
32
+ imei: params?.imei,
33
+ platform: params?.platform,
34
+ status: params?.status,
35
+ tempUserId: tempUserIdBinaryBuffer,
36
+ createdAt: new Date(),
37
+ };
38
+ return await userRegistrationAttemptsRepository.save(newUserRegistrationAttempt);
39
+ }, 'UserRegistrationAttemptsRepository::createUserRegistrationAttempt');
40
+ };