X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=src%2Fapp%2FcontextHandler%2FContextHandlerActions.js;h=889020ac8a7851bfbb98041ac8da0efa440bcd09;hb=refs%2Fchanges%2F09%2F28209%2F1;hp=3cd57f7c7dade2d167840fcd9d8176f708bedd98;hpb=a7b4b96afee33a2ff458f906742d88cd306ed961;p=aai%2Fsparky-fe.git diff --git a/src/app/contextHandler/ContextHandlerActions.js b/src/app/contextHandler/ContextHandlerActions.js index 3cd57f7..889020a 100644 --- a/src/app/contextHandler/ContextHandlerActions.js +++ b/src/app/contextHandler/ContextHandlerActions.js @@ -1,36 +1,40 @@ /* - * ============LICENSE_START=================================================== - * SPARKY (AAI UI service) - * ============================================================================ - * Copyright © 2017 AT&T Intellectual Property. + * ============LICENSE_START======================================================= + * org.onap.aai + * ================================================================================ + * Copyright © 2017 AT&T Intellectual Property. All rights reserved. * 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 + * 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===================================================== + * ============LICENSE_END========================================================= * - * ECOMP and OpenECOMP are trademarks - * and service marks of AT&T Intellectual Property. + * ECOMP is a trademark and service mark of AT&T Intellectual Property. */ import { POST, - POST_HEADER + POST_HEADER, + GET } from 'app/networking/NetworkConstants.js'; import networkCall from 'app/networking/NetworkCalls.js'; import {EXTERNAL_REQ_ENTITY_SEARCH_URL, WRONG_EXTERNAL_REQUEST_MESSAGE, - WRONG_RESULT + WRONG_RESULT, + ZERO_RESULT, + MULTIPLE_RESULT, + FAILED_REQUEST, + SUBSCRIPTION_FAILED_MESSAGE, + SUBSCRIPTION_PAYLOAD_URL } from 'app/contextHandler/ContextHandlerConstants'; import { getSetGlobalMessageEvent, @@ -39,7 +43,8 @@ import { import { STATUS_CODE_204_NO_CONTENT, STATUS_CODE_3XX_REDIRECTION, - MESSAGE_LEVEL_DANGER + MESSAGE_LEVEL_DANGER, + MESSAGE_LEVEL_WARNING } from 'utils/GlobalConstants.js'; @@ -59,6 +64,55 @@ function getExternalParamValues(urlParams) { } +function createSubscriptionPayloadEvent(payload) { + return { + type: contextHandlerActionTypes.SUBSCRIPTION_PAYLOAD_FOUND, + data: payload + }; +} + +function createSubscriptionIsEmptyEvent() { + return { + type: contextHandlerActionTypes.SUBSCRIPTION_PAYLOAD_EMPTY, + data: {} + }; +} + +function fetchSubscriptionPayload(fetchRequestCallback) { + return dispatch => { + return fetchRequestCallback().then( + (response) => { + if (response.status >= STATUS_CODE_3XX_REDIRECTION) { + return Promise.reject(new Error(response.status)); + } else { + // assume 200 status + return response; + } + } + ).then( + (results)=> { + dispatch(createSubscriptionPayloadEvent(results)); + + } + ).catch( + (e) => { + if(e.name === 'EmptyResponseException'){ + dispatch(getClearGlobalMessageEvent()); + dispatch(createSubscriptionIsEmptyEvent()); + } else{ + dispatch(getSetGlobalMessageEvent(SUBSCRIPTION_FAILED_MESSAGE , MESSAGE_LEVEL_WARNING)); + } + } + ); + }; +} +export function getSubscriptionPayload() { + let externalfetchRequest = + () => networkCall.getRequest(SUBSCRIPTION_PAYLOAD_URL, GET); + return dispatch => { + dispatch(fetchSubscriptionPayload(externalfetchRequest)); + }; +} function validateExternalParams(externalURLParams) { if(externalURLParams.view && externalURLParams.entityId && externalURLParams.entityType) { return true; @@ -89,16 +143,21 @@ function fetchDataForExternalRequest(fetchRequestCallback) { } ).then( (results)=> { - if (results.suggestions !== undefined && results.suggestions.length === 1) { - dispatch(getClearGlobalMessageEvent()); - dispatch(createSuggestionFoundEvent({suggestion: results.suggestions[0]})); + if (results.suggestions !== undefined) { + if( results.suggestions.length === 1) { + dispatch(getClearGlobalMessageEvent()); + dispatch(createSuggestionFoundEvent({suggestion: results.suggestions[0]})); + } else if(results.totalFound === 0 ) { + dispatch(getSetGlobalMessageEvent(ZERO_RESULT, MESSAGE_LEVEL_DANGER)); + } else { + dispatch(getSetGlobalMessageEvent(MULTIPLE_RESULT, MESSAGE_LEVEL_DANGER)); } } else { - dispatch(getSetGlobalMessageEvent(WRONG_RESULT , MESSAGE_LEVEL_DANGER)); + dispatch(getSetGlobalMessageEvent(WRONG_RESULT, MESSAGE_LEVEL_DANGER)); } } ).catch( () => { - dispatch(getSetGlobalMessageEvent(WRONG_RESULT , MESSAGE_LEVEL_DANGER)); + dispatch(getSetGlobalMessageEvent(FAILED_REQUEST , MESSAGE_LEVEL_DANGER)); } ); };