diff options
Diffstat (limited to 'src/generic-components/dateRangeSelector/DateRangeSelectorActions.js')
-rw-r--r-- | src/generic-components/dateRangeSelector/DateRangeSelectorActions.js | 118 |
1 files changed, 118 insertions, 0 deletions
diff --git a/src/generic-components/dateRangeSelector/DateRangeSelectorActions.js b/src/generic-components/dateRangeSelector/DateRangeSelectorActions.js new file mode 100644 index 0000000..5d786f7 --- /dev/null +++ b/src/generic-components/dateRangeSelector/DateRangeSelectorActions.js @@ -0,0 +1,118 @@ +/* + * ============LICENSE_START=================================================== + * SPARKY (AAI UI service) + * ============================================================================ + * Copyright © 2017 AT&T Intellectual Property. + * Copyright © 2017 Amdocs + * All rights reserved. + * ============================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END===================================================== + * + * ECOMP and OpenECOMP are trademarks + * and service marks of AT&T Intellectual Property. + */ + +import { + dateRangeSelectorActionTypes, + ERROR_UNKNOWN_PERIOD, + TODAY, + YESTERDAY, + LAST_WEEK, + LAST_MONTH, + CUSTOM +} from 'generic-components/dateRangeSelector/DateRangeSelectorConstants.js'; + +function buildPeriodChangeAction(startMoment, endMoment, period) { + return { + type: dateRangeSelectorActionTypes.EVENT_PERIOD_CHANGE, + data: { + dateRange: { + startDate: startMoment, + endDate: endMoment + }, + period: period + } + }; +} + +function buildUnknownPeriodAction(startMoment, endMoment, period, errorMsg) { + return { + type: dateRangeSelectorActionTypes.EVENT_PERIOD_ERROR, + data: { + dateRange: { + startDate: startMoment, + endDate: endMoment + }, + period: period, + errorMsg: errorMsg + } + }; +} + +export default { + onPeriodChange(startMoment, endMoment, period) { + var moment = require('moment'); + let startPeriod = moment(new Date()); + let endPeriod = moment(new Date()); + let unknownPeriod = false; + + switch (period) { + case TODAY: + // already have today's date set + break; + case YESTERDAY: + startPeriod = moment(startPeriod).subtract(1, 'days'); + break; + case LAST_WEEK: + startPeriod = moment(startPeriod).subtract(7, 'days'); + break; + case LAST_MONTH: + startPeriod = moment(startPeriod).subtract(1, 'months'); + break; + case CUSTOM: + startPeriod = startMoment; + endPeriod = endMoment; + break; + default: + unknownPeriod = true; + break; + } + + if (unknownPeriod) { + let errorMsg = ERROR_UNKNOWN_PERIOD + ': ' + period; + return buildUnknownPeriodAction(startMoment, endMoment, period, errorMsg); + } else { + /* + Temp fix until we support time ... + - set start date time to 00:00:00 + - set end date time to 23:59:59 + this is to ensure we cover an entire day + (ex: start day May 26, end day May 26 ... expect to cover + 0:00:00 to 23:59:59 for that day) + */ + startPeriod.toDate(); + startPeriod.hour(0); + startPeriod.minute(0); + startPeriod.second(0); + + endPeriod.toDate(); + endPeriod.hour(23); + endPeriod.minute(59); + endPeriod.second(59); + + return buildPeriodChangeAction(startPeriod, endPeriod, period); + } + + } +}; |