X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=src%2Futils%2FRoutes.js;h=81306712d24bf6ad7489438bd014bbb4e768ff86;hb=HEAD;hp=a404dea238607a0447e2781ff70753e34269a892;hpb=ca007e933bcd9f63aa77801656ed9dd4142c432c;p=aai%2Fsparky-fe.git diff --git a/src/utils/Routes.js b/src/utils/Routes.js index a404dea..8130671 100644 --- a/src/utils/Routes.js +++ b/src/utils/Routes.js @@ -1,15 +1,113 @@ +/* + * ============LICENSE_START======================================================= + * org.onap.aai + * ================================================================================ + * Copyright © 2017-2018 AT&T Intellectual Property. All rights reserved. + * Copyright © 2017-2018 Amdocs + * ================================================================================ + * 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========================================================= + */ +import {encrypt, decrypt } from './Crypto.js'; + export function changeUrlAddress(pathObj, historyObj) { - let toGo = '/' + - pathObj.route + - '/' + - pathObj.hashId; + let toGo = '/' + pathObj.route; + // left global search to act the same as before for our 2 static views for now + // until we decide to change those 2 views too to act like extensible views. + if (pathObj.route === 'schema' || pathObj.route === 'vnfSearch') { + if (pathObj.filterValues && pathObj.filterValues.length > 0) { + let filterList = []; + for (let index in pathObj.filterValues) { + if (pathObj.filterValues[index].filterValue !== undefined) { + filterList.push(pathObj.filterValues[index].filterId + + '=' + + pathObj.filterValues[index].filterValue); + } else { + filterList.push(pathObj.filterValues[index].filterId + '='); + } + } + toGo = toGo + '/' + filterList.toString(); + } else { + toGo = toGo + '/' + pathObj.hashId; + } + } else { + toGo += '/' + encrypt(JSON.stringify(pathObj)); + } historyObj.push(toGo, {lastRoute: pathObj.route}); } -export function buildRouteObj(routePath, routeHash) { +export function buildRouteObjWithHash(routePath, routeHash) { return { route: routePath, hashId: routeHash }; } + + +export function decryptParamsForView(params) { + let jsonParam = {}; + + function isJson(str) { + try { + JSON.parse(str); + } catch (e) { + return false; + } + return true; + }; + + let stringParams; + + try { + stringParams = decrypt(params); + } catch(e) { + //add inline message in next story + //happens when user changes the url. + } + + if(!isJson(stringParams)) { + return jsonParam; + } + + jsonParam = JSON.parse(stringParams); + return jsonParam; +} + +export function buildRouteObjWithFilters(routePath, routeFiltersObj) { + let filterValues = []; + if (routeFiltersObj !== undefined) { + for (let id in routeFiltersObj) { + if (routeFiltersObj[id] !== undefined) { + filterValues.push( + { + 'filterId': id, + 'filterValue': routeFiltersObj[id] + } + ); + } else { + filterValues.push( + { + 'filterId': id, + 'filterValue': '' + } + ); + } + } + } + + return { + route: routePath, + filterValues: filterValues + }; +}