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