return false;
}
}
+
isValidExternalURL(url) {
if(decodeURIComponent(url).indexOf('&') > 0 ) {
return true;
return false;
}
}
+
componentWillMount() {
this.props.onGetSubscriptionPayload();
if(this.props.match.params.externalUrl !== undefined &&
this.props.onExternalUrlRequest(this.props.match.params.externalUrl);
}
}
+
componentWillReceiveProps(nextProps) {
if (this.props.location &&
this.props.location.pathname !==
case contextHandlerActionTypes.SUBSCRIPTION_PAYLOAD_FOUND:
return {
...state,
- subscriptionPayload: action.data,
+ subscriptionPayload: action.data.subscriptionDetails,
subscriptionEnabled: true
};
case contextHandlerActionTypes.SUBSCRIPTION_PAYLOAD_EMPTY:
}
function createSubscriptionPayloadEvent(payload) {
- return {
- type: contextHandlerActionTypes.SUBSCRIPTION_PAYLOAD_FOUND,
- data: payload
- };
-}
-function createSubscriptionIsEmptyEvent() {
- return {
- type: contextHandlerActionTypes.SUBSCRIPTION_PAYLOAD_EMPTY,
- data: {}
- };
+ let event = undefined;
+
+ if (payload.subscriptionEnabled) {
+ event = {
+ type: contextHandlerActionTypes.SUBSCRIPTION_PAYLOAD_FOUND,
+ data: payload
+ };
+ } else {
+ event = {
+ type: contextHandlerActionTypes.SUBSCRIPTION_PAYLOAD_EMPTY,
+ data: {}
+ };
+ }
+
+ return event;
}
function fetchSubscriptionPayload(fetchRequestCallback) {
return Promise.reject(new Error(response.status));
} else {
// assume 200 status
- return response;
+ return response.json();
}
}
).then(
(results)=> {
dispatch(createSubscriptionPayloadEvent(results));
-
}
).catch(
- (e) => {
- if(e.name === 'EmptyResponseException'){
- dispatch(getClearGlobalMessageEvent());
- dispatch(createSubscriptionIsEmptyEvent());
- } else{
- dispatch(getSetGlobalMessageEvent(SUBSCRIPTION_FAILED_MESSAGE , MESSAGE_LEVEL_WARNING));
- }
+ () => {
+ dispatch(getSetGlobalMessageEvent(SUBSCRIPTION_FAILED_MESSAGE , MESSAGE_LEVEL_WARNING));
}
);
};
}
+
export function getSubscriptionPayload() {
let externalfetchRequest =
() => networkCall.getRequest(SUBSCRIPTION_PAYLOAD_URL, GET);
dispatch(fetchSubscriptionPayload(externalfetchRequest));
};
}
+
function validateExternalParams(externalURLParams) {
if(externalURLParams.view && externalURLParams.entityId && externalURLParams.entityType) {
return true;
}
-
function createSuggestionFoundEvent(suggestion) {
return {
type: contextHandlerActionTypes.SINGLE_SUGGESTION_FOUND,
export const ZERO_RESULT = 'No result has been found for this request.';
export const MULTIPLE_RESULT = 'Multiple results were found for this request so none got selected.';
export const SUBSCRIPTION_FAILED_MESSAGE = 'Failed to fetch subscription payload.';
-export const SUBSCRIPTION_PAYLOAD_URL = BASE_URL + '/subscription/getsubscription';
+export const SUBSCRIPTION_PAYLOAD_URL = BASE_URL + '/rest/subscription/getsubscription';
* ECOMP is a trademark and service mark of AT&T Intellectual Property.
*/
-function EmptyResponseException(){
- this.name = 'EmptyResponseException';
-}
function fetchRequest(URL, POST, POST_HEADER, BODY) {
return fetch(URL, {
credentials: 'same-origin',
});
}
-function processResponse(response){
- if(response.status === 204){
- throw new EmptyResponseException();
- }
- return response.json();
-}
function getRequest(URL, GET) {
return fetch(URL, {
credentials: 'same-origin',
method: GET
- }).then(
- (response) => {
- try{
- response.json();
- } catch (e){
- response.isValidJson = false;
- }
- return processResponse(response);
- }
- );
+ });
}
+
module.exports = {
fetchRequest: fetchRequest,
fetchRequestObj: fetchRequestObj,