diff --git a/lib/graphql/types.js b/lib/graphql/types.js index edc7658a..90d2472c 100644 --- a/lib/graphql/types.js +++ b/lib/graphql/types.js @@ -64,7 +64,7 @@ type Trigger { requirement: String! triggerType: String! - suspensionDays: Int + suspensionDays: Float threshold: Int thresholdDays: Int } diff --git a/lib/routes/customerRoutes.js b/lib/routes/customerRoutes.js index 305a7a07..55f08398 100644 --- a/lib/routes/customerRoutes.js +++ b/lib/routes/customerRoutes.js @@ -1,11 +1,12 @@ const express = require('express') const router = express.Router() const semver = require('semver') -const sms = require('../sms') const _ = require('lodash/fp') -const BN = require('../bn') const { zonedTimeToUtc, utcToZonedTime } = require('date-fns-tz/fp') +const { add, intervalToDuration } = require('date-fns/fp') +const sms = require('../sms') +const BN = require('../bn') const compliance = require('../compliance') const complianceTriggers = require('../compliance-triggers') const configManager = require('../new-config-manager') @@ -18,6 +19,7 @@ const { getTx } = require('../new-admin/services/transactions.js') const machineLoader = require('../machine-loader') const { loadLatestConfig } = require('../new-settings-loader') const customInfoRequestQueries = require('../new-admin/services/customInfoRequests') +const T = require('../time') function updateCustomerCustomInfoRequest (customerId, patch, req, res) { if (_.isNil(patch.data)) { @@ -112,9 +114,9 @@ function triggerSuspend (req, res, next) { const days = triggerId === 'no-ff-camera' ? 1 : getSuspendDays(triggers) - const date = new Date() - date.setDate(date.getDate() + days) - customers.update(id, { suspendedUntil: date }) + const suspensionDuration = intervalToDuration({ start: 0, end: T.day * days }) + + customers.update(id, { suspendedUntil: add(suspensionDuration, new Date()) }) .then(customer => { notifier.complianceNotify(customer, req.deviceId, 'SUSPENDED', days) return respond(req, res, { customer })