@spytecgps/nova-orm 0.0.223 → 0.0.225
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/entities/acumaticaAmazonProduct.js +46 -0
- package/dist/entities/acumaticaImeiIccidData.js +91 -0
- package/dist/entities/acumaticaOrderShipmentDetails.js +61 -0
- package/dist/entities/acumaticaShipment.js +31 -0
- package/dist/entities/acumaticaShipmentAmazon.js +26 -0
- package/dist/entities/aempToken.js +47 -0
- package/dist/entities/alert.js +129 -0
- package/dist/entities/alertMigration.js +115 -0
- package/dist/entities/alertMigrationBatch.js +21 -0
- package/dist/entities/alertTimeWindowConfiguration.js +61 -0
- package/dist/entities/alertType.js +83 -0
- package/dist/entities/appFeatureType.js +36 -0
- package/dist/entities/assetCategory.js +32 -0
- package/dist/entities/billing.js +108 -0
- package/dist/entities/billingCustomerBraintree.js +62 -0
- package/dist/entities/billingDeviceHistory.js +61 -0
- package/dist/entities/billingHubspotPaymentLog.js +256 -0
- package/dist/entities/billingKlarnaCustomer.js +76 -0
- package/dist/entities/billingKlarnaOrder.js +114 -0
- package/dist/entities/billingStatusHistoryBraintree.js +63 -0
- package/dist/entities/billingSubscriptionBraintree.js +229 -0
- package/dist/entities/blacklist.js +51 -0
- package/dist/entities/blacklistType.js +31 -0
- package/dist/entities/boundary.js +119 -0
- package/dist/entities/boundaryEvent.js +105 -0
- package/dist/entities/cellTower.js +66 -0
- package/dist/entities/client.js +153 -0
- package/dist/entities/clientAppFeature.js +47 -0
- package/dist/entities/clientConfiguration.js +47 -0
- package/dist/entities/clientDeviceSetting.js +90 -0
- package/dist/entities/clientType.js +36 -0
- package/dist/entities/country.js +90 -0
- package/dist/entities/customerAttribute.js +52 -0
- package/dist/entities/dataSourceType.js +31 -0
- package/dist/entities/deactivation.js +83 -0
- package/dist/entities/deactivationReason.js +40 -0
- package/dist/entities/device.js +160 -0
- package/dist/entities/deviceAlertConfiguration.js +71 -0
- package/dist/entities/deviceBehavior.js +147 -0
- package/dist/entities/deviceCustomConfiguration.js +67 -0
- package/dist/entities/deviceHistory.js +46 -0
- package/dist/entities/deviceModelListener.js +46 -0
- package/dist/entities/devicePairing.js +67 -0
- package/dist/entities/devicePromotion.js +104 -0
- package/dist/entities/deviceReplacement.js +57 -0
- package/dist/entities/deviceTask.js +44 -0
- package/dist/entities/deviceType.js +149 -0
- package/dist/entities/deviceTypeEvent.js +32 -0
- package/dist/entities/deviceTypeFeature.js +32 -0
- package/dist/entities/deviceTypeFirmware.js +117 -0
- package/dist/entities/entityTag.js +48 -0
- package/dist/entities/entityType.js +31 -0
- package/dist/entities/event.js +36 -0
- package/dist/entities/feature.js +36 -0
- package/dist/entities/firmwareAutoUpgradeBlacklist.js +35 -0
- package/dist/entities/firmwareUpgradeTask.js +105 -0
- package/dist/entities/iccidStatus.js +49 -0
- package/dist/entities/imeiIccidCarrier.js +125 -0
- package/dist/entities/imeiIccidHistory.js +43 -0
- package/dist/entities/index.js +99 -0
- package/dist/entities/industry.js +46 -0
- package/dist/entities/latestPosition.js +100 -0
- package/dist/entities/latestPositionMigration.js +96 -0
- package/dist/entities/latestPositionMigrationBatch.js +21 -0
- package/dist/entities/magento2Gps.js +256 -0
- package/dist/entities/magento2Plan.js +41 -0
- package/dist/entities/mobileNetwork.js +51 -0
- package/dist/entities/notificationRecipient.js +100 -0
- package/dist/entities/organization.js +46 -0
- package/dist/entities/plan.js +86 -0
- package/dist/entities/position.js +102 -0
- package/dist/entities/positionMigration.js +96 -0
- package/dist/entities/positionMigrationBatch.js +21 -0
- package/dist/entities/promotion.js +134 -0
- package/dist/entities/securityRole.js +41 -0
- package/dist/entities/serviceProvider.js +41 -0
- package/dist/entities/serviceProviderProduct.js +61 -0
- package/dist/entities/serviceProviderProductNetwork.js +31 -0
- package/dist/entities/serviceProviderProductType.js +31 -0
- package/dist/entities/sim.js +92 -0
- package/dist/entities/task.js +146 -0
- package/dist/entities/taskSchedule.js +141 -0
- package/dist/entities/trip.js +127 -0
- package/dist/entities/tripCompletionStatus.js +36 -0
- package/dist/entities/tripPosition.js +26 -0
- package/dist/entities/user.js +196 -0
- package/dist/entities/userActivation.js +52 -0
- package/dist/entities/userActivationDevice.js +164 -0
- package/dist/entities/userActivationEvent.js +61 -0
- package/dist/entities/userActivationMetric.js +208 -0
- package/dist/entities/userAlertComplain.js +78 -0
- package/dist/entities/userAlertConfiguration.js +109 -0
- package/dist/entities/userAppFeedback.js +52 -0
- package/dist/entities/userAppIncident.js +176 -0
- package/dist/entities/userConfiguration.js +109 -0
- package/dist/entities/userDataDeletionRequest.js +56 -0
- package/dist/entities/userDeviceBehaviorTask.js +80 -0
- package/dist/entities/userInvitation.js +89 -0
- package/dist/entities/userRatingRequest.js +75 -0
- package/dist/entities/userRegistrationAttempt.js +177 -0
- package/dist/entities/userSecurityRole.js +33 -0
- package/dist/index.js +1 -2
- package/dist/migration/1684483704434-addLowerCaseIndex.js +16 -0
- package/dist/novaDataSource.js +110 -0
- package/dist/repositories/acumatica/getAcumaticaImeiIccidData.js +35 -0
- package/dist/repositories/acumatica/getAcumaticaShipmentDetails.js +50 -0
- package/dist/repositories/acumatica/getLastAcumaticaShipmentDetails.js +27 -0
- package/dist/repositories/acumatica/index.js +52 -0
- package/dist/repositories/aempToken/createAempToken.js +26 -0
- package/dist/repositories/aempToken/deleteAempTokens.js +30 -0
- package/dist/repositories/aempToken/getAempTokens.js +27 -0
- package/dist/repositories/aempToken/index.js +53 -0
- package/dist/repositories/alertTypes/getAlertTypes.js +13 -0
- package/dist/repositories/alertTypes/index.js +18 -0
- package/dist/repositories/alerts/createAlert.js +94 -0
- package/dist/repositories/alerts/createUserAlertComplain.js +26 -0
- package/dist/repositories/alerts/getAlertsReportByClient.js +65 -0
- package/dist/repositories/alerts/getAlertsReportByUser.js +127 -0
- package/dist/repositories/alerts/index.js +104 -0
- package/dist/repositories/appFeatures/createAppFeatureType.js +15 -0
- package/dist/repositories/appFeatures/createClientAppFeature.js +15 -0
- package/dist/repositories/appFeatures/getClientAppFeatures.js +39 -0
- package/dist/repositories/appFeatures/index.js +57 -0
- package/dist/repositories/assetCategories/getAssetCategories.js +8 -0
- package/dist/repositories/assetCategories/index.js +16 -0
- package/dist/repositories/baseRepository.js +9 -0
- package/dist/repositories/billing/createBilling.js +37 -0
- package/dist/repositories/billing/createBillingDeviceHistory.js +30 -0
- package/dist/repositories/billing/createBillingHubspotPaymentLog.js +61 -0
- package/dist/repositories/billing/createBillingStatusHistoryBraintree.js +32 -0
- package/dist/repositories/billing/getBillingCustomerBraintreeById.js +18 -0
- package/dist/repositories/billing/getBillingKlarnaOrderByImei.js +18 -0
- package/dist/repositories/billing/getBillingSubscriptionBraintreeByImei.js +18 -0
- package/dist/repositories/billing/getBillingSubscriptionsBraintree.js +25 -0
- package/dist/repositories/billing/getBillings.js +42 -0
- package/dist/repositories/billing/getCanceledImeis.js +84 -0
- package/dist/repositories/billing/getCanceledImeisMatchingMagentoData.js +100 -0
- package/dist/repositories/billing/getChurnStatusByClientId.js +27 -0
- package/dist/repositories/billing/getClientIdFromBraintreeCustomer.js +20 -0
- package/dist/repositories/billing/getMagentoPlan.js +21 -0
- package/dist/repositories/billing/getUserByBraintreeCustomerId.js +22 -0
- package/dist/repositories/billing/index.js +353 -0
- package/dist/repositories/billing/updateBilling.js +43 -0
- package/dist/repositories/billing/updateBillingCustomerBraintree.js +37 -0
- package/dist/repositories/billing/upsertBillingCustomerBraintree.js +39 -0
- package/dist/repositories/billing/upsertBillingKlarnaCustomer.js +52 -0
- package/dist/repositories/billing/upsertBillingKlarnaOrder.js +58 -0
- package/dist/repositories/billing/upsertBillingSubscriptionBraintree.js +20 -0
- package/dist/repositories/blacklist/getBlacklists.js +19 -0
- package/dist/repositories/blacklist/index.js +19 -0
- package/dist/repositories/boundaries/createBoundary.js +52 -0
- package/dist/repositories/boundaries/deleteBoundary.js +23 -0
- package/dist/repositories/boundaries/getBoundariesByClientId.js +17 -0
- package/dist/repositories/boundaries/getBoundariesIdsByClientId.js +19 -0
- package/dist/repositories/boundaries/getBoundariesReport.js +141 -0
- package/dist/repositories/boundaries/getBoundaryById.js +14 -0
- package/dist/repositories/boundaries/index.js +178 -0
- package/dist/repositories/boundaries/processBoundaryEvent.js +211 -0
- package/dist/repositories/boundaries/updateBoundary.js +53 -0
- package/dist/repositories/boundaries/upsertBoundaryEvent.js +23 -0
- package/dist/repositories/clients/createClient.js +35 -0
- package/dist/repositories/clients/createClientConfiguration.js +18 -0
- package/dist/repositories/clients/createCustomerAttribute.js +16 -0
- package/dist/repositories/clients/deleteClientAndConfiguration.js +25 -0
- package/dist/repositories/clients/getClient.js +32 -0
- package/dist/repositories/clients/getClientConfiguration.js +14 -0
- package/dist/repositories/clients/getClients.js +26 -0
- package/dist/repositories/clients/getCustomerAttribute.js +14 -0
- package/dist/repositories/clients/index.js +192 -0
- package/dist/repositories/clients/updateClient.js +52 -0
- package/dist/repositories/clients/updateClientConfiguration.js +31 -0
- package/dist/repositories/clients/updateCustomerAttribute.js +27 -0
- package/dist/repositories/countries/getCountries.js +14 -0
- package/dist/repositories/countries/getCountry.js +23 -0
- package/dist/repositories/countries/index.js +33 -0
- package/dist/repositories/deactivations/createDeactivation.js +16 -0
- package/dist/repositories/deactivations/getDeactivationReasons.js +24 -0
- package/dist/repositories/deactivations/getLatestDeactivationByImei.js +19 -0
- package/dist/repositories/deactivations/index.js +58 -0
- package/dist/repositories/deviceBehaviors/createDeviceBehaviorTask.js +48 -0
- package/dist/repositories/deviceBehaviors/getDeviceBehaviorTasks.js +40 -0
- package/dist/repositories/deviceBehaviors/getDeviceBehaviors.js +41 -0
- package/dist/repositories/deviceBehaviors/getDeviceBehaviorsByIds.js +16 -0
- package/dist/repositories/deviceBehaviors/getDevicesLastBehaviorTask.js +42 -0
- package/dist/repositories/deviceBehaviors/getLatestDeviceBehaviorTasks.js +40 -0
- package/dist/repositories/deviceBehaviors/index.js +147 -0
- package/dist/repositories/deviceBehaviors/updateDeviceBehaviorTask.js +27 -0
- package/dist/repositories/deviceBehaviors/upsertDeviceBehavior.js +20 -0
- package/dist/repositories/devicePairings/createDevicePairing.js +21 -0
- package/dist/repositories/devicePairings/deleteDevicePairing.js +16 -0
- package/dist/repositories/devicePairings/getDevicePairings.js +36 -0
- package/dist/repositories/devicePairings/getDevicePairingsByImei.js +20 -0
- package/dist/repositories/devicePairings/index.js +90 -0
- package/dist/repositories/devicePairings/updateDevicePairing.js +32 -0
- package/dist/repositories/devices/createClientDeviceSetting.js +25 -0
- package/dist/repositories/devices/createDevice.js +30 -0
- package/dist/repositories/devices/createDeviceReplacement.js +34 -0
- package/dist/repositories/devices/createDeviceType.js +15 -0
- package/dist/repositories/devices/deleteDevice.js +16 -0
- package/dist/repositories/devices/generateDeviceIdentifierKey.js +18 -0
- package/dist/repositories/devices/getCanceledDevicesWithActiveSimCards.js +40 -0
- package/dist/repositories/devices/getCarrierStatusUpdatedBefore.js +40 -0
- package/dist/repositories/devices/getClientDeviceSetting.js +20 -0
- package/dist/repositories/devices/getClientDeviceSettings.js +17 -0
- package/dist/repositories/devices/getDevice.js +33 -0
- package/dist/repositories/devices/getDeviceCustomConfig.js +37 -0
- package/dist/repositories/devices/getDeviceTypeByImei.js +18 -0
- package/dist/repositories/devices/getDeviceTypes.js +30 -0
- package/dist/repositories/devices/getDeviceTypesModelsOrderedByDeviceCount.js +27 -0
- package/dist/repositories/devices/getDeviceWithUsersInfo.js +59 -0
- package/dist/repositories/devices/getDevices.js +46 -0
- package/dist/repositories/devices/getFilteredImeisWithStatus.js +20 -0
- package/dist/repositories/devices/getIccidStatus.js +17 -0
- package/dist/repositories/devices/getImeiIccidCarrier.js +23 -0
- package/dist/repositories/devices/getImeiIccidCarriers.js +17 -0
- package/dist/repositories/devices/index.js +464 -0
- package/dist/repositories/devices/updateClientDeviceSetting.js +38 -0
- package/dist/repositories/devices/updateDevice.js +56 -0
- package/dist/repositories/devices/updateDeviceType.js +43 -0
- package/dist/repositories/devices/updateIccidStatus.js +28 -0
- package/dist/repositories/devices/updateImeiIccidCarrier.js +43 -0
- package/dist/repositories/devices/upsertIccidStatus.js +36 -0
- package/dist/repositories/firmwares/createDeviceFirmware.js +37 -0
- package/dist/repositories/firmwares/createFirmwareAutoUpgradeBlacklist.js +16 -0
- package/dist/repositories/firmwares/createFirmwareUpgradeTask.js +36 -0
- package/dist/repositories/firmwares/getDeviceFirmwares.js +21 -0
- package/dist/repositories/firmwares/getFirmwareAutoUpgradeBlacklist.js +23 -0
- package/dist/repositories/firmwares/getFirmwareUpgradeTasks.js +105 -0
- package/dist/repositories/firmwares/getFirmwareUpgradeTasksCount.js +56 -0
- package/dist/repositories/firmwares/index.js +194 -0
- package/dist/repositories/firmwares/updateDeviceFirmware.js +41 -0
- package/dist/repositories/firmwares/updateFirmwareUpgradeTasks.js +37 -0
- package/dist/repositories/index.js +31 -0
- package/dist/repositories/notificationRecipients/createNotificationRecipient.js +37 -0
- package/dist/repositories/notificationRecipients/deleteNotificationRecipients.js +26 -0
- package/dist/repositories/notificationRecipients/deleteNotificationRecipientsByEmailOrPhone.js +28 -0
- package/dist/repositories/notificationRecipients/getNotificationRecipients.js +16 -0
- package/dist/repositories/notificationRecipients/index.js +131 -0
- package/dist/repositories/notificationRecipients/updateNotificationRecipient.js +37 -0
- package/dist/repositories/notificationRecipients/updateUsersNotificationsUnsubscribedInfoStatus.js +98 -0
- package/dist/repositories/notificationRecipients/updateUsersNotificationsUnsuscribedStatus.js +35 -0
- package/dist/repositories/positions/createPosition.js +100 -0
- package/dist/repositories/positions/getLatestPositionByImei.js +26 -0
- package/dist/repositories/positions/getPositionsByImei.js +23 -0
- package/dist/repositories/positions/getPositionsReportByClient.js +87 -0
- package/dist/repositories/positions/index.js +101 -0
- package/dist/repositories/positions/upsertLatestPosition.js +41 -0
- package/dist/repositories/security/createUserRole.js +30 -0
- package/dist/repositories/security/getAllRoles.js +8 -0
- package/dist/repositories/security/getUserRoles.js +15 -0
- package/dist/repositories/security/getUserRolesByClientId.js +17 -0
- package/dist/repositories/security/index.js +111 -0
- package/dist/repositories/security/removeUserRoles.js +21 -0
- package/dist/repositories/security/updateUserRole.js +27 -0
- package/dist/repositories/security/userIsAdminOrOwner.js +20 -0
- package/dist/repositories/security/userIsInRole.js +18 -0
- package/dist/repositories/tasks/addTaskScheduleDevices.js +37 -0
- package/dist/repositories/tasks/completeTask.js +25 -0
- package/dist/repositories/tasks/createTask.js +22 -0
- package/dist/repositories/tasks/createTaskSchedule.js +33 -0
- package/dist/repositories/tasks/deleteTask.js +22 -0
- package/dist/repositories/tasks/deleteTaskSchedule.js +22 -0
- package/dist/repositories/tasks/deleteTaskScheduleDevices.js +17 -0
- package/dist/repositories/tasks/getDeviceTasks.js +28 -0
- package/dist/repositories/tasks/getTaskSchedule.js +31 -0
- package/dist/repositories/tasks/getTaskSchedules.js +75 -0
- package/dist/repositories/tasks/getTaskSchedulesCount.js +23 -0
- package/dist/repositories/tasks/getTasks.js +29 -0
- package/dist/repositories/tasks/getTasksCount.js +20 -0
- package/dist/repositories/tasks/index.js +441 -0
- package/dist/repositories/tasks/setTaskAsPastDue.js +23 -0
- package/dist/repositories/tasks/setTaskScheduleDevices.js +43 -0
- package/dist/repositories/tasks/updateTask.js +21 -0
- package/dist/repositories/tasks/updateTaskSchedule.js +35 -0
- package/dist/repositories/trips/createTrip.js +29 -0
- package/dist/repositories/trips/getTripById.js +15 -0
- package/dist/repositories/trips/getTrips.js +65 -0
- package/dist/repositories/trips/index.js +69 -0
- package/dist/repositories/trips/updateTripEndValues.js +36 -0
- package/dist/repositories/trips/upsertTrip.js +31 -0
- package/dist/repositories/userActivations/createUserActivation.js +26 -0
- package/dist/repositories/userActivations/createUserActivationDevice.js +35 -0
- package/dist/repositories/userActivations/createUserActivationEvent.js +34 -0
- package/dist/repositories/userActivations/createUserActivationMetric.js +28 -0
- package/dist/repositories/userActivations/deleteUserActivation.js +22 -0
- package/dist/repositories/userActivations/getLastActivationDevice.js +26 -0
- package/dist/repositories/userActivations/getUserActivationDevices.js +24 -0
- package/dist/repositories/userActivations/getUserActivationDevicesByClientId.js +26 -0
- package/dist/repositories/userActivations/getUserActivationMetrics.js +24 -0
- package/dist/repositories/userActivations/getUserActivations.js +29 -0
- package/dist/repositories/userActivations/index.js +229 -0
- package/dist/repositories/userActivations/updateUserActivationDevice.js +39 -0
- package/dist/repositories/userActivations/updateUserActivationMetrics.js +61 -0
- package/dist/repositories/userAppFeedback/createUserAppFeedback.js +26 -0
- package/dist/repositories/userAppFeedback/index.js +23 -0
- package/dist/repositories/userAppIncidents/getUserAppIncidents.js +28 -0
- package/dist/repositories/userAppIncidents/index.js +63 -0
- package/dist/repositories/userAppIncidents/upsertUserAppIncident.js +53 -0
- package/dist/repositories/userConfigurations/bulkCreateUserAlertConfigurations.js +46 -0
- package/dist/repositories/userConfigurations/createDeviceAlertTimeWindows.js +36 -0
- package/dist/repositories/userConfigurations/createUserAlertTimeWindows.js +33 -0
- package/dist/repositories/userConfigurations/createUserConfiguration.js +34 -0
- package/dist/repositories/userConfigurations/deleteDeviceAlertTimeWindows.js +17 -0
- package/dist/repositories/userConfigurations/deleteUserAlertConfigurations.js +24 -0
- package/dist/repositories/userConfigurations/deleteUserAlertTimeWindows.js +17 -0
- package/dist/repositories/userConfigurations/deleteUserConfiguration.js +23 -0
- package/dist/repositories/userConfigurations/getDeviceAlertTimeWindows.js +43 -0
- package/dist/repositories/userConfigurations/getUserAlertConfigurations.js +25 -0
- package/dist/repositories/userConfigurations/getUserAlertTimeWindows.js +35 -0
- package/dist/repositories/userConfigurations/getUserConfigurations.js +31 -0
- package/dist/repositories/userConfigurations/index.js +298 -0
- package/dist/repositories/userConfigurations/updateDeviceAlertTimeWindows.js +29 -0
- package/dist/repositories/userConfigurations/updateUserAlertConfigurations.js +46 -0
- package/dist/repositories/userConfigurations/updateUserAlertTimeWindows.js +28 -0
- package/dist/repositories/userConfigurations/updateUserConfiguration.js +49 -0
- package/dist/repositories/userDataDeletionRequests/createUserDataDeletionRequest.js +28 -0
- package/dist/repositories/userDataDeletionRequests/getUserDataDeletionRequest.js +29 -0
- package/dist/repositories/userDataDeletionRequests/index.js +66 -0
- package/dist/repositories/userDataDeletionRequests/removeUserDataDeletionRequest.js +17 -0
- package/dist/repositories/userDataDeletionRequests/updateUserDataDeletionRequest.js +38 -0
- package/dist/repositories/userInvitations/createUserInvitation.js +43 -0
- package/dist/repositories/userInvitations/getUserInvitationById.js +22 -0
- package/dist/repositories/userInvitations/getUserInvitations.js +31 -0
- package/dist/repositories/userInvitations/index.js +82 -0
- package/dist/repositories/userInvitations/updateUserInvitation.js +50 -0
- package/dist/repositories/userRatingRequests/createUserRatingRequest.js +34 -0
- package/dist/repositories/userRatingRequests/getUserRatingRequests.js +23 -0
- package/dist/repositories/userRatingRequests/index.js +41 -0
- package/dist/repositories/userRegistrationAttempts/createUserRegistrationAttempt.js +40 -0
- package/dist/repositories/userRegistrationAttempts/getUserRegistrationAttempts.js +29 -0
- package/dist/repositories/userRegistrationAttempts/index.js +70 -0
- package/dist/repositories/userRegistrationAttempts/updateUserRegistrationAttempt.js +40 -0
- package/dist/repositories/users/createUser.js +47 -0
- package/dist/repositories/users/deleteAccount.js +98 -0
- package/dist/repositories/users/deleteUser.js +22 -0
- package/dist/repositories/users/getUserById.js +22 -0
- package/dist/repositories/users/getUserData.js +66 -0
- package/dist/repositories/users/getUsers.js +49 -0
- package/dist/repositories/users/getUsersConfigurationByImei.js +29 -0
- package/dist/repositories/users/getUsersIdByPhoneAndCountryCode.js +21 -0
- package/dist/repositories/users/getUsersWithRoles.js +32 -0
- package/dist/repositories/users/index.js +195 -0
- package/dist/repositories/users/updateUser.js +109 -0
- package/dist/subscribers/allEntitiesSubscriber.js +52 -0
- package/dist/subscribers/index.js +2 -0
- package/dist/types/acumatica.js +1 -0
- package/dist/types/aempToken.js +1 -0
- package/dist/types/alert.js +1 -0
- package/dist/types/alertTypes.js +1 -0
- package/dist/types/appFeatures.js +1 -0
- package/dist/types/billing.js +1 -0
- package/dist/types/blacklist.js +1 -0
- package/dist/types/boundaries.js +1 -0
- package/dist/types/clients.js +1 -0
- package/dist/types/common.js +1 -0
- package/dist/types/countries.js +1 -0
- package/dist/types/deactivations.js +1 -0
- package/dist/types/deviceBehaviors.js +1 -0
- package/dist/types/devicePairings.js +1 -0
- package/dist/types/devices.js +1 -0
- package/dist/types/enums.js +74 -0
- package/dist/types/firmwares.js +17 -0
- package/dist/types/index.js +30 -0
- package/dist/types/logger.js +9 -0
- package/dist/types/notificationRecipients.js +1 -0
- package/dist/types/position.js +1 -0
- package/dist/types/security.js +1 -0
- package/dist/types/tasks.d.ts +2 -2
- package/dist/types/tasks.js +1 -0
- package/dist/types/trip.js +29 -0
- package/dist/types/user.js +1 -0
- package/dist/types/userActivations.js +1 -0
- package/dist/types/userAppFeedback.js +1 -0
- package/dist/types/userAppIncidents.js +1 -0
- package/dist/types/userConfigurations.js +1 -0
- package/dist/types/userDataDeletionRequests.js +1 -0
- package/dist/types/userInvitations.js +1 -0
- package/dist/types/userRatingRequests.js +1 -0
- package/dist/types/userRegistrationAttempts.js +1 -0
- package/dist/utils/anyAttributeHasValue.js +20 -0
- package/dist/utils/anyAttributeIsNull.js +12 -0
- package/dist/utils/boolToNumberTransformer.js +23 -0
- package/dist/utils/consoleLogger.js +42 -0
- package/dist/utils/filterTools.js +299 -0
- package/dist/utils/mapRawEntityToEntity.js +12 -0
- package/dist/utils/queryLogger.js +48 -0
- package/dist/utils/randomizer.js +39 -0
- package/dist/utils/stringToDateTransformer.js +16 -0
- package/dist/utils/uuidHelpers.js +30 -0
- package/package.json +10 -8
- package/dist/index.js.LICENSE.txt +0 -41
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { UserRegistrationAttempt } from '../../entities';
|
|
2
|
+
import { uuidStringToBinaryBuffer } from '../../utils/uuidHelpers';
|
|
3
|
+
export const getUserRegistrationAttempts = async (novaDataSource, params, logger) => {
|
|
4
|
+
if (!params?.filters?.id && !params?.filters?.tempUserId) {
|
|
5
|
+
logger.warn({ params }, 'UserRegistrationAttemptsRepository::getUserRegistrationAttempts - missing required parameters');
|
|
6
|
+
return [];
|
|
7
|
+
}
|
|
8
|
+
const tempUserIdBinaryBuffer = uuidStringToBinaryBuffer(params?.filters?.tempUserId);
|
|
9
|
+
if (params?.filters?.tempUserId && !tempUserIdBinaryBuffer?.length) {
|
|
10
|
+
logger.warn({ params }, 'UserRegistrationAttemptsRepository::getUserRegistrationAttempts - temp user id should be a valid UUID');
|
|
11
|
+
return [];
|
|
12
|
+
}
|
|
13
|
+
return novaDataSource.safeQuery(async (dataSource) => {
|
|
14
|
+
const userRegistrationAttemptsRepository = dataSource.getRepository(UserRegistrationAttempt);
|
|
15
|
+
let queryBuilder = userRegistrationAttemptsRepository.createQueryBuilder('userRegistrationAttempt');
|
|
16
|
+
if (params?.filters?.id) {
|
|
17
|
+
queryBuilder = queryBuilder.where('userRegistrationAttempt.id = :id', {
|
|
18
|
+
id: params?.filters?.id,
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
if (params?.filters?.tempUserId) {
|
|
22
|
+
queryBuilder = queryBuilder.where('userRegistrationAttempt.tempUserId = :tempUserId', {
|
|
23
|
+
tempUserId: tempUserIdBinaryBuffer,
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
const result = await queryBuilder.getMany();
|
|
27
|
+
return result;
|
|
28
|
+
}, 'UserRegistrationAttemptsRepository::getUserRegistrationAttempts');
|
|
29
|
+
};
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { NovaDataSource } from '../../novaDataSource';
|
|
2
|
+
import { BaseRepository } from '../baseRepository';
|
|
3
|
+
import { createUserRegistrationAttempt } from './createUserRegistrationAttempt';
|
|
4
|
+
import { getUserRegistrationAttempts } from './getUserRegistrationAttempts';
|
|
5
|
+
import { updateUserRegistrationAttempt } from './updateUserRegistrationAttempt';
|
|
6
|
+
export class UserRegistrationAttemptsRepository extends BaseRepository {
|
|
7
|
+
/**
|
|
8
|
+
* Get user registration attempts
|
|
9
|
+
* @param {GetUserRegistrationAttemptsParams} params containing information to get user registration attempts
|
|
10
|
+
* One of the following filters is required:
|
|
11
|
+
* - filters.id: The user registration attempt id
|
|
12
|
+
* - filters.tempUserId: The temp user id
|
|
13
|
+
* @returns The user registration attempts list
|
|
14
|
+
*/
|
|
15
|
+
async getUserRegistrationAttempts(params) {
|
|
16
|
+
this.logger.trace(params, 'UserRegistrationAttemptsRepository::getUserRegistrationAttempts started with params');
|
|
17
|
+
const novaDataSource = new NovaDataSource(this.novaDataSourceConfig, this.logger);
|
|
18
|
+
const result = await getUserRegistrationAttempts(novaDataSource, params, this.logger);
|
|
19
|
+
this.logger.trace(result, 'UserRegistrationAttemptsRepository::getUserRegistrationAttempts result');
|
|
20
|
+
return result;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Create user registration attempt
|
|
24
|
+
* @param {CreateUserRegistrationAttemptParams} params containing information to create user registration attempt
|
|
25
|
+
* One of the following fields is required:
|
|
26
|
+
* - id: The user registration attempt id
|
|
27
|
+
* - firstName: The user first name
|
|
28
|
+
* - lastName: The user last name
|
|
29
|
+
* - email: The user email
|
|
30
|
+
* - phoneNumber: The user phone number
|
|
31
|
+
* - phoneCode: The user phone code
|
|
32
|
+
* - phoneCodeCountryId: The user phone code country id
|
|
33
|
+
* - imei: The user imei
|
|
34
|
+
* - platform: The user platform
|
|
35
|
+
* - status: The user status
|
|
36
|
+
* - tempUserId: The temp user id
|
|
37
|
+
* @returns The created user registration attempt
|
|
38
|
+
*/
|
|
39
|
+
async createUserRegistrationAttempt(params) {
|
|
40
|
+
this.logger.trace(params, 'UserRegistrationAttemptsRepository::createUserRegistrationAttempt started with params');
|
|
41
|
+
const novaDataSource = new NovaDataSource(this.novaDataSourceConfig, this.logger);
|
|
42
|
+
const result = await createUserRegistrationAttempt(novaDataSource, params, this.logger);
|
|
43
|
+
this.logger.trace(result, 'UserRegistrationAttemptsRepository::createUserRegistrationAttempt result');
|
|
44
|
+
return result;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Update user registration attempt
|
|
48
|
+
* @param {UpdateUserRegistrationAttemptParams} params containing information to update user registration attempt
|
|
49
|
+
* The following filter is required:
|
|
50
|
+
* - filters.id: The user registration attempt id
|
|
51
|
+
* One of the following fields is required:
|
|
52
|
+
* - values.clientId: The user client id
|
|
53
|
+
* - values.userName: The user name
|
|
54
|
+
* - values.pin: The user pin
|
|
55
|
+
* - values.street: The user street
|
|
56
|
+
* - values.city: The user city
|
|
57
|
+
* - values.state: The user state
|
|
58
|
+
* - values.postalCode: The user postal code
|
|
59
|
+
* - values.country: The user country
|
|
60
|
+
* - values.countryCode: The user country code
|
|
61
|
+
* @returns True if the user registration attempt was updated, false otherwise
|
|
62
|
+
*/
|
|
63
|
+
async updateUserRegistrationAttempt(params) {
|
|
64
|
+
this.logger.trace(params, 'UserRegistrationAttemptsRepository::updateUserRegistrationAttempt started with params');
|
|
65
|
+
const novaDataSource = new NovaDataSource(this.novaDataSourceConfig, this.logger);
|
|
66
|
+
const result = await updateUserRegistrationAttempt(novaDataSource, params, this.logger);
|
|
67
|
+
this.logger.trace({ result }, 'UserRegistrationAttemptsRepository::updateUserRegistrationAttempt result');
|
|
68
|
+
return result;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { UserRegistrationAttempt } from '../../entities';
|
|
2
|
+
export const updateUserRegistrationAttempt = async (novaDataSource, params, logger) => {
|
|
3
|
+
if (!params?.filters?.id) {
|
|
4
|
+
logger.warn({ params }, 'UserRegistrationAttemptsRepository::updateUserRegistrationAttempt - missing required parameters');
|
|
5
|
+
return false;
|
|
6
|
+
}
|
|
7
|
+
if (!params?.values?.clientId &&
|
|
8
|
+
!params?.values?.userName &&
|
|
9
|
+
!params?.values?.pin &&
|
|
10
|
+
!params?.values?.street &&
|
|
11
|
+
!params?.values?.city &&
|
|
12
|
+
!params?.values?.state &&
|
|
13
|
+
!params?.values?.postalCode &&
|
|
14
|
+
!params?.values?.country &&
|
|
15
|
+
!params?.values?.countryCode) {
|
|
16
|
+
logger.warn({ params }, 'UserRegistrationAttemptsRepository::updateUserRegistrationAttempt - missing required parameters');
|
|
17
|
+
return false;
|
|
18
|
+
}
|
|
19
|
+
return novaDataSource.safeQuery(async (dataSource) => {
|
|
20
|
+
const userRegistrationAttemptsRepository = dataSource.getRepository(UserRegistrationAttempt);
|
|
21
|
+
const queryBuilder = userRegistrationAttemptsRepository
|
|
22
|
+
.createQueryBuilder()
|
|
23
|
+
.update(UserRegistrationAttempt)
|
|
24
|
+
.set({
|
|
25
|
+
clientId: params?.values?.clientId,
|
|
26
|
+
userName: params?.values?.userName,
|
|
27
|
+
pin: params?.values?.pin,
|
|
28
|
+
street: params?.values?.street,
|
|
29
|
+
city: params?.values?.city,
|
|
30
|
+
state: params?.values?.state,
|
|
31
|
+
postalCode: params?.values?.postalCode,
|
|
32
|
+
country: params?.values?.country,
|
|
33
|
+
countryCode: params?.values?.countryCode,
|
|
34
|
+
lastUpdatedAt: new Date(),
|
|
35
|
+
})
|
|
36
|
+
.where('id = :id', { id: params?.filters?.id });
|
|
37
|
+
const result = await queryBuilder.execute();
|
|
38
|
+
return result.affected > 0;
|
|
39
|
+
}, 'UserRegistrationAttemptsRepository::updateUserRegistrationAttempt');
|
|
40
|
+
};
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { User } from '../../entities/user';
|
|
2
|
+
import { uuidStringToBinaryBuffer } from '../../utils/uuidHelpers';
|
|
3
|
+
export const createUser = async (novaDataSource, params, logger) => {
|
|
4
|
+
if (!params?.id ||
|
|
5
|
+
!params?.firstName ||
|
|
6
|
+
!params?.lastName ||
|
|
7
|
+
!params?.email ||
|
|
8
|
+
!params?.userName ||
|
|
9
|
+
!params?.clientId) {
|
|
10
|
+
logger.warn({ params }, 'UsersRepository::createUser - missing required parameters');
|
|
11
|
+
return null;
|
|
12
|
+
}
|
|
13
|
+
const binaryBuffer = uuidStringToBinaryBuffer(params?.id);
|
|
14
|
+
if (!binaryBuffer?.length) {
|
|
15
|
+
logger.warn({ params }, 'UsersRepository::createUser - user id should be a valid UUID');
|
|
16
|
+
return null;
|
|
17
|
+
}
|
|
18
|
+
return novaDataSource.safeQuery(async (dataSource) => {
|
|
19
|
+
const usersRepository = dataSource.getRepository(User);
|
|
20
|
+
const now = new Date();
|
|
21
|
+
const newUser = {
|
|
22
|
+
id: binaryBuffer,
|
|
23
|
+
firstName: params.firstName,
|
|
24
|
+
lastName: params.lastName,
|
|
25
|
+
companyName: params.companyName,
|
|
26
|
+
telephone: params.telephone,
|
|
27
|
+
street: params.street,
|
|
28
|
+
postalCode: params.postalCode,
|
|
29
|
+
city: params.city,
|
|
30
|
+
region: params.region,
|
|
31
|
+
email: params.email?.toLowerCase(),
|
|
32
|
+
userName: params.userName,
|
|
33
|
+
preferredUserName: params.preferredUserName,
|
|
34
|
+
status: params.status ?? 'A',
|
|
35
|
+
clientId: params.clientId,
|
|
36
|
+
pincode: params.pinCode,
|
|
37
|
+
isAdmin: params.isAdmin ?? false,
|
|
38
|
+
countryId: params.countryId,
|
|
39
|
+
telephoneCountryId: params.telephoneCountryId,
|
|
40
|
+
dataSourceTypeId: params.dataSourceTypeId,
|
|
41
|
+
emailVerified: params.emailVerified ?? true,
|
|
42
|
+
createdAt: now,
|
|
43
|
+
modifiedAt: now,
|
|
44
|
+
};
|
|
45
|
+
return await usersRepository.save(newUser);
|
|
46
|
+
}, 'UsersRepository::createUser');
|
|
47
|
+
};
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import { Boundary, BoundaryEvent, Client, ClientConfiguration, Deactivation, NotificationRecipient, Trip, User, UserActivation, UserActivationDevice, UserAlertConfiguration, UserAppFeedback, UserConfiguration, UserInvitation, UserRatingRequest, UserSecurityRole, } from '../../entities';
|
|
2
|
+
import { uuidStringToBinaryBuffer } from '../../utils/uuidHelpers';
|
|
3
|
+
export const deleteAccount = async (novaDataSource, params, logger) => {
|
|
4
|
+
let binaryBuffer = uuidStringToBinaryBuffer(params?.filters?.userId);
|
|
5
|
+
await novaDataSource.connect();
|
|
6
|
+
const queryRunner = novaDataSource.createQueryRunner();
|
|
7
|
+
try {
|
|
8
|
+
if (!binaryBuffer && params?.filters?.email) {
|
|
9
|
+
const usersRepository = novaDataSource.getRepository(User);
|
|
10
|
+
const user = await usersRepository
|
|
11
|
+
.createQueryBuilder()
|
|
12
|
+
.where('email = :email', { email: params.filters.email })
|
|
13
|
+
.select('id')
|
|
14
|
+
.getRawOne();
|
|
15
|
+
if (user) {
|
|
16
|
+
binaryBuffer = user.id;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
let clientId = params.filters.clientId;
|
|
20
|
+
if (!clientId && params.filters.email) {
|
|
21
|
+
const clientsRepository = novaDataSource.getRepository(Client);
|
|
22
|
+
const client = await clientsRepository
|
|
23
|
+
.createQueryBuilder()
|
|
24
|
+
.where('email = :email', { email: params.filters.email })
|
|
25
|
+
.select('id')
|
|
26
|
+
.getRawOne();
|
|
27
|
+
if (client) {
|
|
28
|
+
clientId = client.id;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
await queryRunner.startTransaction();
|
|
32
|
+
let clientDeleted = false;
|
|
33
|
+
if (clientId) {
|
|
34
|
+
await queryRunner.manager.delete(NotificationRecipient, { clientId });
|
|
35
|
+
await queryRunner.manager.delete(UserSecurityRole, { clientId });
|
|
36
|
+
await queryRunner.manager.delete(UserInvitation, { inviterClientId: clientId });
|
|
37
|
+
const boundaries = await queryRunner.manager
|
|
38
|
+
.createQueryBuilder()
|
|
39
|
+
.select('boundary.id')
|
|
40
|
+
.from(Boundary, 'boundary')
|
|
41
|
+
.where('boundary.clientId = :clientId', { clientId })
|
|
42
|
+
.getMany();
|
|
43
|
+
if (boundaries?.length) {
|
|
44
|
+
await queryRunner.manager
|
|
45
|
+
.createQueryBuilder()
|
|
46
|
+
.delete()
|
|
47
|
+
.from(BoundaryEvent, 'boundaryEvent')
|
|
48
|
+
.where('boundaryEvent.boundaryId IN (:ids)', {
|
|
49
|
+
ids: boundaries.map(x => x.id),
|
|
50
|
+
})
|
|
51
|
+
.execute();
|
|
52
|
+
await queryRunner.manager.delete(Boundary, { clientId });
|
|
53
|
+
}
|
|
54
|
+
await queryRunner.manager.delete(Trip, { clientId });
|
|
55
|
+
await queryRunner.manager.delete(ClientConfiguration, { clientId });
|
|
56
|
+
await queryRunner.manager.delete(Deactivation, { clientId });
|
|
57
|
+
const deleteClientResult = await queryRunner.manager.delete(Client, clientId);
|
|
58
|
+
clientDeleted = deleteClientResult.affected > 0;
|
|
59
|
+
}
|
|
60
|
+
let userDeleted = false;
|
|
61
|
+
if (binaryBuffer) {
|
|
62
|
+
await queryRunner.manager.delete(UserConfiguration, { userId: binaryBuffer });
|
|
63
|
+
await queryRunner.manager.delete(UserAlertConfiguration, { userId: binaryBuffer });
|
|
64
|
+
const userActivations = await queryRunner.manager
|
|
65
|
+
.createQueryBuilder()
|
|
66
|
+
.select('userActivation.id')
|
|
67
|
+
.from(UserActivation, 'userActivation')
|
|
68
|
+
.where('userActivation.userId = :userId', { userId: binaryBuffer })
|
|
69
|
+
.getMany();
|
|
70
|
+
if (userActivations?.length) {
|
|
71
|
+
await queryRunner.manager
|
|
72
|
+
.createQueryBuilder()
|
|
73
|
+
.delete()
|
|
74
|
+
.from(UserActivationDevice, 'userActivationDevice')
|
|
75
|
+
.where(`userActivationDevice.userActivationId IN (${userActivations
|
|
76
|
+
?.map(x => x.id)
|
|
77
|
+
.join(',')})`)
|
|
78
|
+
.execute();
|
|
79
|
+
await queryRunner.manager.delete(UserActivation, { userId: binaryBuffer });
|
|
80
|
+
}
|
|
81
|
+
await queryRunner.manager.delete(UserRatingRequest, { userId: binaryBuffer });
|
|
82
|
+
await queryRunner.manager.delete(UserAppFeedback, { userId: binaryBuffer });
|
|
83
|
+
const deleteUserResult = await queryRunner.manager.delete(User, { id: binaryBuffer });
|
|
84
|
+
userDeleted = deleteUserResult.affected > 0;
|
|
85
|
+
}
|
|
86
|
+
await queryRunner.commitTransaction();
|
|
87
|
+
return clientDeleted || userDeleted;
|
|
88
|
+
}
|
|
89
|
+
catch (error) {
|
|
90
|
+
await queryRunner.rollbackTransaction();
|
|
91
|
+
logger.error({ error }, 'UsersRepository::deleteAccount error');
|
|
92
|
+
throw error;
|
|
93
|
+
}
|
|
94
|
+
finally {
|
|
95
|
+
await queryRunner.release();
|
|
96
|
+
await novaDataSource.disconnect();
|
|
97
|
+
}
|
|
98
|
+
};
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { User } from '../../entities';
|
|
2
|
+
import { uuidStringToBinaryBuffer } from '../../utils/uuidHelpers';
|
|
3
|
+
export const deleteUser = async (novaDataSource, params, logger) => {
|
|
4
|
+
if (!params?.id) {
|
|
5
|
+
logger.warn({ params }, 'UsersRepository::deleteUser - missing required parameters');
|
|
6
|
+
return false;
|
|
7
|
+
}
|
|
8
|
+
const binaryBuffer = uuidStringToBinaryBuffer(params?.id);
|
|
9
|
+
if (!binaryBuffer?.length) {
|
|
10
|
+
logger.warn({ params }, 'UsersRepository::deleteUser - user id should be a valid UUID');
|
|
11
|
+
return false;
|
|
12
|
+
}
|
|
13
|
+
return novaDataSource.safeQuery(async (dataSource) => {
|
|
14
|
+
const usersRepository = dataSource.getRepository(User);
|
|
15
|
+
const result = await usersRepository
|
|
16
|
+
.createQueryBuilder('user')
|
|
17
|
+
.delete()
|
|
18
|
+
.where('id = :id', { id: binaryBuffer })
|
|
19
|
+
.execute();
|
|
20
|
+
return result.affected > 0;
|
|
21
|
+
}, 'UsersRepository::deleteUser');
|
|
22
|
+
};
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { User } from '../../entities';
|
|
2
|
+
import { uuidStringToBinaryBuffer } from '../../utils/uuidHelpers';
|
|
3
|
+
export const getUserById = async (novaDataSource, params, logger) => {
|
|
4
|
+
if (!params?.filters?.id) {
|
|
5
|
+
logger.warn({ params }, 'UsersRepository::getUserById - missing required parameters');
|
|
6
|
+
return null;
|
|
7
|
+
}
|
|
8
|
+
const binaryBuffer = uuidStringToBinaryBuffer(params?.filters?.id);
|
|
9
|
+
if (!binaryBuffer?.length) {
|
|
10
|
+
logger.warn({ params }, 'UsersRepository::getUserById - user id should be a valid UUID');
|
|
11
|
+
return null;
|
|
12
|
+
}
|
|
13
|
+
return novaDataSource.safeQuery(async (dataSource) => {
|
|
14
|
+
const usersRepository = dataSource.getRepository(User);
|
|
15
|
+
let queryBuilder = usersRepository.createQueryBuilder('user');
|
|
16
|
+
queryBuilder = queryBuilder.where('user.id = :id', {
|
|
17
|
+
id: binaryBuffer,
|
|
18
|
+
});
|
|
19
|
+
const result = await queryBuilder.getOne();
|
|
20
|
+
return result;
|
|
21
|
+
}, 'UsersRepository::getUserById');
|
|
22
|
+
};
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { User } from '../../entities';
|
|
2
|
+
import { binaryBufferToUuidString } from '../../utils/uuidHelpers';
|
|
3
|
+
export const getUsersData = async (novaDataSource, params, logger) => {
|
|
4
|
+
if (!params?.filters?.imei) {
|
|
5
|
+
logger.warn({ params }, 'UsersRepository::getUsersData - missing required parameters');
|
|
6
|
+
return [];
|
|
7
|
+
}
|
|
8
|
+
return novaDataSource.safeQuery(async (dataSource) => {
|
|
9
|
+
const usersRepository = dataSource.getRepository(User);
|
|
10
|
+
const query = `SELECT U.id as userId, U.telephone, U.email
|
|
11
|
+
, UC.isMetric, coalesce (UC.timezone, '') as timezone, UC.alertsNotificationsOn, UC.speedUnits , UC.distanceUnits
|
|
12
|
+
, AC.alertTypeId, AC.smsNotification, AC.emailNotification, AC.alertValue, AC.pushNotification , AC.appNotification , AC.alertMetadata
|
|
13
|
+
, D.name as deviceName, D.deviceTypeId
|
|
14
|
+
, C.id as clientId
|
|
15
|
+
, U.isAdmin
|
|
16
|
+
, CO.internationalDirectDialing
|
|
17
|
+
, ( SELECT CONCAT('[',
|
|
18
|
+
GROUP_CONCAT( distinct case when NR.isUserProfile = true
|
|
19
|
+
then CONCAT('"', U.telephone, '"') else CONCAT('"', NR.recipient, '"') end SEPARATOR ','),
|
|
20
|
+
']') AS JSON
|
|
21
|
+
from notificationRecipient as NR
|
|
22
|
+
where NR.clientId = C.id
|
|
23
|
+
and NR.userId = U.id
|
|
24
|
+
and NR.notificationType = 2
|
|
25
|
+
and NR.isEnabled = true
|
|
26
|
+
and NR.unsubscribed = false ) as phoneNumbers
|
|
27
|
+
, ( SELECT CONCAT('[',
|
|
28
|
+
GROUP_CONCAT( distinct case when NR.isUserProfile = true
|
|
29
|
+
then CONCAT('"', U.email, '"') else CONCAT('"', NR.recipient, '"') end SEPARATOR ','),
|
|
30
|
+
']') AS JSON
|
|
31
|
+
from notificationRecipient as NR
|
|
32
|
+
where NR.clientId = C.id
|
|
33
|
+
and NR.userId = U.id
|
|
34
|
+
and NR.notificationType = 1
|
|
35
|
+
and NR.isEnabled = true
|
|
36
|
+
and NR.unsubscribed = false ) as emailAddresses
|
|
37
|
+
FROM device AS D
|
|
38
|
+
JOIN client AS C
|
|
39
|
+
ON D.clientId = C.id
|
|
40
|
+
JOIN user AS U
|
|
41
|
+
ON U.clientId = C.id and U.status = 'A'
|
|
42
|
+
JOIN userConfiguration AS UC
|
|
43
|
+
ON UC.userId = U.id
|
|
44
|
+
JOIN userAlertConfiguration as AC
|
|
45
|
+
ON AC.userId = U.id
|
|
46
|
+
JOIN alertType AS A
|
|
47
|
+
ON A.id = AC.alertTypeId
|
|
48
|
+
JOIN country AS CO
|
|
49
|
+
ON CO.id = CASE WHEN(U.countryId IS NULL OR U.countryId = 0) THEN 236 ELSE U.countryId END
|
|
50
|
+
WHERE D.imei = ?`;
|
|
51
|
+
const result = await usersRepository.query(query, [params.filters.imei]);
|
|
52
|
+
return result.map(item => ({
|
|
53
|
+
...item,
|
|
54
|
+
userId: binaryBufferToUuidString(item.userId),
|
|
55
|
+
isAdmin: item.isAdmin === 1,
|
|
56
|
+
isMetric: item.isMetric === 1,
|
|
57
|
+
alertsNotificationOn: item.alertsNotificationsOn === 1,
|
|
58
|
+
smsNotification: item.smsNotification === 1,
|
|
59
|
+
emailNotification: item.emailNotification === 1,
|
|
60
|
+
pushNotification: item.pushNotification === 1,
|
|
61
|
+
appNotification: item.appNotification === 1,
|
|
62
|
+
phoneNumbers: item.phoneNumbers ? JSON.parse(item.phoneNumbers) : [],
|
|
63
|
+
emailAddresses: item.emailAddresses ? JSON.parse(item.emailAddresses) : [],
|
|
64
|
+
}));
|
|
65
|
+
}, 'UsersRepository::getUsersData');
|
|
66
|
+
};
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { User } from '../../entities';
|
|
2
|
+
import { uuidStringToBinaryBuffer } from '../../utils/uuidHelpers';
|
|
3
|
+
export const getUsers = async (novaDataSource, params, logger) => {
|
|
4
|
+
if (!params?.filters?.emailList?.length &&
|
|
5
|
+
!params?.filters?.userName &&
|
|
6
|
+
!params?.filters?.clientId &&
|
|
7
|
+
!params?.filters?.search &&
|
|
8
|
+
!params?.filters?.status) {
|
|
9
|
+
logger.warn({ params }, 'UsersRepository::getUsers - missing required parameters');
|
|
10
|
+
return [];
|
|
11
|
+
}
|
|
12
|
+
return novaDataSource.safeQuery(async (dataSource) => {
|
|
13
|
+
const usersRepository = dataSource.getRepository(User);
|
|
14
|
+
let queryBuilder = usersRepository.createQueryBuilder('user');
|
|
15
|
+
if (params.filters.emailList?.length) {
|
|
16
|
+
queryBuilder = queryBuilder.where('LOWER(user.email) IN (:...emailList)', {
|
|
17
|
+
emailList: params.filters.emailList.map(email => email.trim().toLowerCase()),
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
if (params.filters.userName) {
|
|
21
|
+
queryBuilder = queryBuilder.andWhere('(LOWER(user.userName) = LOWER(:userName) OR LOWER(user.preferredUserName) = LOWER(:userName))', {
|
|
22
|
+
userName: params.filters.userName.trim(),
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
if (params.filters.clientId) {
|
|
26
|
+
queryBuilder = queryBuilder.andWhere('user.clientId = :clientId', {
|
|
27
|
+
clientId: params.filters.clientId,
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
if (params.filters.search) {
|
|
31
|
+
const binaryBuffer = uuidStringToBinaryBuffer(params.filters.search);
|
|
32
|
+
queryBuilder = queryBuilder.andWhere(`(LOWER(user.userName) = LOWER(:search) OR
|
|
33
|
+
LOWER(user.preferredUserName) = LOWER(:search) OR
|
|
34
|
+
LOWER(user.email) = LOWER(:search) OR
|
|
35
|
+
user.id = :binaryBuffer)`, {
|
|
36
|
+
search: params.filters.search.trim(),
|
|
37
|
+
binaryBuffer,
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
if (params.filters.status) {
|
|
41
|
+
queryBuilder = queryBuilder.andWhere('user.status = :status', {
|
|
42
|
+
status: params.filters.status,
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
queryBuilder = queryBuilder.orderBy('user.lastname', 'DESC');
|
|
46
|
+
const result = await queryBuilder.getMany();
|
|
47
|
+
return result;
|
|
48
|
+
}, 'UsersRepository::getUsers');
|
|
49
|
+
};
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { User } from '../../entities';
|
|
2
|
+
//User
|
|
3
|
+
//User Configuration
|
|
4
|
+
//Alert Configuration
|
|
5
|
+
//Device (name)
|
|
6
|
+
//Country (international dialing code)
|
|
7
|
+
export const getUsersConfigurationByImei = async (novaDataSource, params, logger) => {
|
|
8
|
+
try {
|
|
9
|
+
await novaDataSource.connect();
|
|
10
|
+
const usersRepository = novaDataSource.getRepository(User);
|
|
11
|
+
const userConfiguration = usersRepository
|
|
12
|
+
.createQueryBuilder('user')
|
|
13
|
+
.innerJoin('user.client', 'client')
|
|
14
|
+
.innerJoinAndSelect('client.devices', 'device')
|
|
15
|
+
.innerJoinAndSelect('user.userConfiguration', 'userConfiguration')
|
|
16
|
+
.innerJoinAndSelect('user.userAlertConfiguration', 'userAlertConfiguration')
|
|
17
|
+
.innerJoinAndSelect('user.country', 'country')
|
|
18
|
+
.where('device.imei = :imei', { imei: params.filters.imei })
|
|
19
|
+
.getMany();
|
|
20
|
+
return userConfiguration;
|
|
21
|
+
}
|
|
22
|
+
catch (error) {
|
|
23
|
+
logger.error({ error }, 'UsersRepository::getUsersConfigurationByImei error');
|
|
24
|
+
throw error;
|
|
25
|
+
}
|
|
26
|
+
finally {
|
|
27
|
+
await novaDataSource.disconnect();
|
|
28
|
+
}
|
|
29
|
+
};
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { Country, User } from '../../entities';
|
|
2
|
+
import { binaryBufferToUuidString } from '../../utils/uuidHelpers';
|
|
3
|
+
export const getUsersIdsByPhoneAndCountryCode = async (novaDataSource, params, logger) => {
|
|
4
|
+
if (!params?.filters?.phone || !params?.filters?.countryCode) {
|
|
5
|
+
logger.warn({ params }, 'UsersRepository::getUsersIdsByPhoneAndCountryCode - missing required parameters');
|
|
6
|
+
return [];
|
|
7
|
+
}
|
|
8
|
+
return novaDataSource.safeQuery(async (dataSource) => {
|
|
9
|
+
const usersRepository = dataSource.getRepository(User);
|
|
10
|
+
let queryBuilder = usersRepository
|
|
11
|
+
.createQueryBuilder('user')
|
|
12
|
+
.innerJoin(Country, 'country', 'country.id = user.countryId')
|
|
13
|
+
.where('country.alpha2Code = :countryCode', { countryCode: params.filters.countryCode })
|
|
14
|
+
.andWhere(`user.telephone = REPLACE(:phone, country.internationalDirectDialing, '')`, {
|
|
15
|
+
phone: params.filters.phone,
|
|
16
|
+
});
|
|
17
|
+
queryBuilder = queryBuilder.select('user.id as id');
|
|
18
|
+
const result = await queryBuilder.getRawMany();
|
|
19
|
+
return result?.map(item => binaryBufferToUuidString(item.id));
|
|
20
|
+
}, 'UsersRepository::getUsersIdsByPhoneAndCountryCode');
|
|
21
|
+
};
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { SecurityRole, User, UserSecurityRole } from '../../entities';
|
|
2
|
+
import { mapRawEntityToEntity } from '../../utils/mapRawEntityToEntity';
|
|
3
|
+
export const getUsersWithRoles = async (novaDataSource, params, logger) => {
|
|
4
|
+
if (!params?.filters?.clientId || (!params?.filters?.status && !params?.filters?.roleId)) {
|
|
5
|
+
logger.warn({ params }, 'UsersRepository::getUsersWithRoles - missing required parameters');
|
|
6
|
+
return [];
|
|
7
|
+
}
|
|
8
|
+
return novaDataSource.safeQuery(async (dataSource) => {
|
|
9
|
+
const usersRepository = dataSource.getRepository(User);
|
|
10
|
+
let queryBuilder = usersRepository
|
|
11
|
+
.createQueryBuilder('user')
|
|
12
|
+
.innerJoin(UserSecurityRole, 'userSecurityRole', 'userSecurityRole.userId = user.id')
|
|
13
|
+
.innerJoin(SecurityRole, 'securityRole', 'securityRole.id = userSecurityRole.securityRoleId')
|
|
14
|
+
.where('user.clientId = :clientId', {
|
|
15
|
+
clientId: params.filters.clientId,
|
|
16
|
+
});
|
|
17
|
+
if (params.filters.roleId) {
|
|
18
|
+
queryBuilder = queryBuilder.andWhere('securityRole.id = :roleId', {
|
|
19
|
+
roleId: params.filters.roleId,
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
if (params.filters.status) {
|
|
23
|
+
queryBuilder = queryBuilder.andWhere('user.status = :status', {
|
|
24
|
+
status: params.filters.status,
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
queryBuilder = queryBuilder.addSelect('securityRole.name', 'role');
|
|
28
|
+
const usersWithRole = await queryBuilder.getRawMany();
|
|
29
|
+
const result = usersWithRole.map(item => mapRawEntityToEntity(item, 'user_'));
|
|
30
|
+
return result;
|
|
31
|
+
}, 'UsersRepository::getUsersWithRoles');
|
|
32
|
+
};
|