{"version":3,"sources":["webpack:///./src/utils/config.js","webpack:///./src/store/modules/config.js","webpack:///./src/services/check.js","webpack:///./src/store/modules/check.js","webpack:///./src/services/cosmos.js","webpack:///./src/store/modules/home/cosmos.js","webpack:///./src/services/mongo.js","webpack:///./src/store/modules/home/mongoAFH.js","webpack:///./src/store/modules/home/mongoAPL.js","webpack:///./src/store/modules/home/errors.js","webpack:///./src/store/modules/home/index.js","webpack:///./src/store/modules/errors/converters/convertToDateColumn.js","webpack:///./src/store/modules/errors/converters/convertToRows.js","webpack:///./src/store/modules/errors/table.js","webpack:///./src/store/modules/errors/index.js","webpack:///./src/services/sonar.js","webpack:///./src/store/modules/sonar/index.js","webpack:///./src/services/schemareg.js","webpack:///./src/store/modules/schemareg/index.js","webpack:///./src/store/modules/authentication/index.js","webpack:///./src/store/modules/releases/index.js","webpack:///./src/services/storage.js","webpack:///./src/store/modules/storage/index.js","webpack:///./src/services/proxyApi.js","webpack:///./src/store/modules/proxyApi/index.js","webpack:///./src/store/modules/atlasAdmin/index.js","webpack:///./src/services/release-notes.js","webpack:///./src/store/modules/releasesNotes/index.js","webpack:///./src/services/referentials.js","webpack:///./src/store/modules/referentials/index.js","webpack:///./src/services/event-hubs.js","webpack:///./src/store/modules/eventHubs/index.js","webpack:///./src/services/metrics.js","webpack:///./src/store/modules/metrics/index.js","webpack:///./src/services/consumers.js","webpack:///./src/store/modules/consumers/index.js","webpack:///./src/store/index.js","webpack:///./src/services/atlasadmin.js","webpack:///./src/services/auth.js","webpack:///./src/store/modules/workers.js","webpack:///./src/services/errorsQuery.js","webpack:///./src/services/orderDocuments.js","webpack:///./src/services/errors.js","webpack:///./src/services/releases.js","webpack:///./src/utils/axios.js","webpack:///./src/services/common.js"],"names":["defaultConfig","PEARL_ENVIRONMENT","process","VUE_APP_PEARL_ENVIRONMENT","VERSION","VUE_APP_VERSION","DEBUG","VUE_APP_DEBUG","BACKEND_BASE_URL","VUE_APP_BACKEND_BASE_URL","PEARL_PLT_FBP_DTZ_UI_SUBSCRIPTION_KEY","VUE_APP_PEARL_PLT_FBP_DTZ_UI_SUBSCRIPTION_KEY","PEARL_PLT_FBP_DTZ_UI_CLIENT_ID","VUE_APP_PEARL_PLT_FBP_DTZ_UI_CLIENT_ID","PEARL_PLT_FBP_DTZ_UI_PUBLIC_URL","VUE_APP_PEARL_PLT_FBP_DTZ_UI_PUBLIC_URL","PEARL_PLT_FBP_DTZ_AUDIENCE_RESOURCE","VUE_APP_PEARL_PLT_FBP_DTZ_AUDIENCE_RESOURCE","PATH_API_CHECK","VUE_APP_PATH_API_CHECK","PATH_API_CHECKERRORS","VUE_APP_PATH_API_CHECKERRORS","PATH_API_CHECKPOINT","VUE_APP_PATH_API_CHECKPOINT","PATH_API_COSMOS_FIND","VUE_APP_PATH_API_COSMOS_FIND","PATH_API_ATLAS_FIND","VUE_APP_PATH_API_ATLAS_FIND","PATH_API_SONAR","VUE_APP_PATH_API_SONAR","baseConfiguration","loadConfiguration","getURL","resource","this","mergedConfig","URL_CONFIG","async","data","config","axios","get","cleanedConfig","Object","entries","reduce","conf","key","value","Proxy","_","property","undefined","apply","target","thisArg","argumentsList","console","log","entitiesFBP","name","selector","cosmos","mongo","APL","AFH","entitiesWFJ","entitiesFSH","state","divisions","currentDivision","entities","FBP","FSH","WFJ","namespaced","actions","changeDivision","context","division","commit","mutations","CHANGE_DIVISION","getCheck","err","message","buildErrorMessage","Error","getCheckErrors","getCheckpoint","counts","HTTP_STATE","LOADING","values","errors","errorCounts","checkpoint","getters","counts_has_errors","errorCounts_has_errors","checkpoint_has_errors","checkResponse","OK","ERROR","COUNTS_CHANGED","response","COUNTS_STATE","status","COUNTS_ERRORS","ERROR_COUNTS_CHANGED","ERROR_COUNTS_STATE","ERRORCOUNTS_ERRORS","CHECKPOINT_CHANGED","CHECKPOINT_STATE","CHECKPOINT_ERRORS","getDocument","params","document","messages","hasErrors","length","hasDocument","content","JSON","stringify","documents","cosmosService","SET_DOCUMENT","SET_STATE","SET_ERROR","SET_MESSAGES","errorsExtendedService","modules","mongoAFH","mongoAPL","fromDocument","tsField","timestamp","dateFormatter","Intl","DateTimeFormat","timeZone","year","month","day","hour","minute","second","timestampAsDate","Date","format","defaultValue","fromDocuments","map","index","_id","date","convertToDateColumn","namespace","valueOrDefault","occuredOn","eventHub","error","errorMessage","errorType","receivedMessage","lastReplay","getLastReplay","replays","reverse","replay","tags","rows","distinctTags","isLoading","pageCount","stats","statsType","count","zone","notifyMessage","notifyLevel","total","options","result","errorsService","getErrorsByFilter","query","pageSize","pageNumber","convertToRows","getStats","filter","stat","hub","hubname","split","push","getTags","loadErrors_loading","loadErrors_success","sortedIds","loadPageRows_loading","loadPageRows_success","count_success","stats_success","statstype_success","tags_success","table","getAllMetrics","common","projects","sonarService","SET_PROJECTS","getLatestSchemas","entity","worker","div","post","header","componentTrigram","env","toLowerCase","payload","method","path","documentType","activeOnly","Array","isArray","responses","schemas","loading","keys","workersConfig","schemaRegService","SET_SCHEMAS","SET_LOADING","pearlGroupRegexp","access_token","user","loginFinished","isAuthenticated","accessToken","INIT_AUTHENTICATION","SET_ACCESS_TOKEN","access_key","defaults","headers","SET_USER","dispatch","auth","authService","isUserLoggedIn","getAccessToken","decoded","jwtDecode","groups","Groups","res","regexp","RegExp","group","exec","role","root","handleLoginRedirect","login","logout","releases","releasesOnProdData","workerInfos","workerHealth","versionService","getADOReleases","getReleasesOnProdData","metadata","infoLoading","release","artifacts","artifact","hasHealthInfo","statusText","infos","workerMetadata","trigram","toUpperCase","getWorkerInfos","Promise","all","flat","healthLoading","healths","getWorkerHealth","SET_RELEASES","SET_RELEASES_ON_PROD","SET_WORKERINFOS","SET_WORKERHEALTH","getStorages","addStorage","storage","addContainer","container","addClient","client","deleteStorage","delete","deleteContainer","deleteClient","clientId","currentContainer","currentStorage","storages","setCurrentContainer","setCurrentStorage","updateAfterAddClient","find","s","containers","updateAfterAddContainer","updateAfterAddStorage","updatedStorage","SET_STORAGE","SET_CURRENT_CONTAINER","SET_CURRENT_STORAGE","postRequestForWorkerApis","requestBody","getUserRequestsData","saveUserRequest","userRequest","deleteUserRequestById","id","selectedUserRequest","userRequestsData","responseData","setSelectedUserRequest","request","requests","responseBody","SET_SELECTED_REQUEST","SET_RESPONSE_DATA","SET_REQUESTS_LIST","SET_STATUS","ips","clusters","clusterPrivileges","password","atlasAdminService","getIps","ipDetails","addIp","ipAddress","ip","comment","deleteIp","getAccessibleClusters","clusterAccess","getSupportAccessPrivileges","formValues","addSupportPrivileges","cluster","username","deleteSupportAccessPrivileges","removePasswordState","SET_IP_LIST","SET_CLUSTERS_LIST","SET_CLUSTERS_ACCESS_LIST","SET_PASSWORD","getReleases","getReleasesNote","releaseAName","releaseBName","releasesMeta","releaseNote","releaseNotesService","releaseA","releaseB","releaseName","SET_RELEASE_LIST","SET_RELEASE_NOTE","cancelToken","getReferentialData","referentialUri","size","page","cancel","CancelToken","source","token","createReferential","referentialData","updateReferential","referentialCode","put","deleteReferential","getFullReferentialData","totalPages","recentStatus","concat","number","fullReferentials","totalElements","url","resetResponseDataContent","resetFullReferentialResponseDataContent","SET_TOTAL_ELEMENTS","SET_TOTAL_PAGES","RESET_RESPONSE_DATA_CONTENT","SET_FULL_RESPONSE_DATA","RESET_FULL_REFERENTIAL_RESPONSE_DATA","list","describeByDivisionWorkerAndEntity","eventHubsDefinitions","eventHubs","eventHubsService","SET_EVENTHUBS_LIST","SET_EVENTHUB_DEFINITIONS","then","nonFormattedDate","slice","getBusinessDatesCount","startDate","endDate","diffInMinute","getDay","setMinutes","getMinutes","createDivisionReleaseName","filterDate","divisionReleasesName","currentDate","PRD","releasesName","MEITU","oldReleaseName","removeOneMonth","getDate","_date","substr","sortReleases","sort","dateA","dateB","calculateAverageDiffDays","tickets","numTickets","sum","ticket","diffDays","averageDiffDays","getReleaseNote","releasesNote","newDate","unshift","endpoints","divisionNames","i","endpoint","catch","reason","allSettled","newest","createdOn","toString","join","deploymentDate","deployments","changes","ticketInfos","indexOf","ticketName","startsWith","mergeDate","correctMergeDate","getFullYear","getMonth","oldest","releaseNoteData","consumers","environments","statuses","apis","consumersService","Set","c","api","environment","from","SET_CONSUMERS","SET_ENVIRONMENTS","SET_STATUSES","SET_APIS","Vue","use","Vuex","Store","check","home","sonar","schemareg","authentication","proxyApi","atlasadmin","releasesNotes","referentials","metrics","groupEnd","getRequestClientIP","userManager","AuthService","signinRedirect","signoutRedirect","signinRedirectCallback","handleLogoutRedirect","signoutRedirectCallback","resolve","reject","getUser","getProfile","silentRenew","signinSilent","initAuthentication","settings","userStore","WebStorageStateStore","store","window","sessionStorage","authority","issuer","authorization_endpoint","token_endpoint","jwks_uri","end_session_endpoint","userinfo_endpoint","extraQueryParams","client_id","redirect_uri","post_logout_redirect_uri","response_type","scope","loadUserInfo","automaticSilentRenew","automaticSilentSignin","silent_redirect_uri","signingKeys","kty","alg","kid","x5t","n","e","x5c","UserManager","events","addUserLoaded","warn","addUserSignedOut","addAccessTokenExpiring","startSilentRenew","addAccessTokenExpired","addSilentRenewError","ERR","sourcePath","SRA","ASC","WDF","WBR","WMA","WSC","WCS","WCR","WCP","WCA","WCX","DTZ","queryFromParams","filterData","kv","keyFilter","eventHubFilter","$regex","$and","inIdsOrder","ids","docById","Map","doc","postData","errorsQuery","PATH_API_ERROR_QUERY","PATH_API_ERROR_ADVANCED_QUERY","storedTimestamp","projection","limit","skip","type","PATH_API_ERROR_ADVANCED_QUERY_STATS","PATH_API_ERROR_TAGS_LIST","tag","getByIds","PATH_API_ERROR_QUERY_BY_IDS","orderDocuments","replayError","PATH_API_ERROR_REPLAY","publish","toAdd","PATH_API_ERROR_TAG","batchTag","PATH_API_BATCH_ERROR_TAG","markAs","PATH_API_ERROR_STATUS","loadPayload","PATH_API_ERROR_PAYLOAD","batchMarkAs","PATH_API_BATCH_ERROR_STATUS","opts","down","app","getCommits","previousCommit","repo","interceptors","axiosConfig","stringOfParams","details","forEach","detail"],"mappings":"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","file":"js/chunk-common.274388d2.js","sourcesContent":["import axios from '@/utils/axios'\n// DEFAULT VALUES\nconst defaultConfig = {\n PEARL_ENVIRONMENT: process.env.VUE_APP_PEARL_ENVIRONMENT || 'local',\n VERSION: process.env.VUE_APP_VERSION || '0.0.0',\n DEBUG: process.env.VUE_APP_DEBUG || true,\n BACKEND_BASE_URL:\n process.env.VUE_APP_BACKEND_BASE_URL || 'http://localhost:3000',\n PEARL_PLT_FBP_DTZ_UI_SUBSCRIPTION_KEY:\n process.env.VUE_APP_PEARL_PLT_FBP_DTZ_UI_SUBSCRIPTION_KEY || 'CHANGE-ME',\n PEARL_PLT_FBP_DTZ_UI_CLIENT_ID:\n process.env.VUE_APP_PEARL_PLT_FBP_DTZ_UI_CLIENT_ID || 'CHANGE-ME',\n PEARL_PLT_FBP_DTZ_UI_PUBLIC_URL:\n process.env.VUE_APP_PEARL_PLT_FBP_DTZ_UI_PUBLIC_URL || 'CHANGE-ME',\n PEARL_PLT_FBP_DTZ_AUDIENCE_RESOURCE:\n process.env.VUE_APP_PEARL_PLT_FBP_DTZ_AUDIENCE_RESOURCE || 'CHANGE-ME',\n PATH_API_CHECK: process.env.VUE_APP_PATH_API_CHECK || '/check',\n PATH_API_CHECKERRORS:\n process.env.VUE_APP_PATH_API_CHECKERRORS || '/checkerrors',\n PATH_API_CHECKPOINT: process.env.VUE_APP_PATH_API_CHECKPOINT || '/checkpoint',\n PATH_API_COSMOS_FIND:\n process.env.VUE_APP_PATH_API_COSMOS_FIND || '/cosmos/find',\n\n PATH_API_ATLAS_FIND: process.env.VUE_APP_PATH_API_ATLAS_FIND || '/atlas/find',\n\n PATH_API_SONAR: process.env.VUE_APP_PATH_API_SONAR || '/sonar'\n}\n\n// Some function or other things that are usefull in config but not\n// a variable\nconst baseConfiguration = {\n loadConfiguration,\n getURL(resource) {\n return `${this.BACKEND_BASE_URL}${resource}`\n }\n}\n\n// Let's merge default ...\nlet mergedConfig = {\n ...baseConfiguration,\n ...defaultConfig\n}\n\n// Without defining scheme (http://...) this will load the file from the same host the vue application\nconst URL_CONFIG = 'config.json'\n\n/**\n * Load specific config from url\n */\nasync function loadConfiguration() {\n // Get config data from config.json file\n const { data: config } = await axios.get(URL_CONFIG)\n\n // Remove all values that are not changed, and should be changed\n // We made it to be able to use .env.local file locally\n const cleanedConfig = Object.entries(config).reduce((conf, [key, value]) => {\n if (value !== 'CHANGE-ME') {\n conf[key] = value\n }\n return conf\n }, {})\n\n // Merge everything\n // if data is defined in .env.local, but has CHANGE-ME value in config.json, so the value will be set to the one in .env.local file.\n // If none are defined, default will be taken\n mergedConfig = {\n ...mergedConfig,\n ...cleanedConfig\n }\n\n return mergedConfig\n}\n\n// Export config through a proxy,\n// This will allow to load dynamic config\nexport default new Proxy(\n {},\n {\n get: function(_, property) {\n if (mergedConfig[property] !== undefined) {\n if (typeof mergedConfig[property] === 'function') {\n return new Proxy(mergedConfig[property], {\n apply: function(target, thisArg, argumentsList) {\n return target.apply(thisArg, argumentsList)\n }\n })\n } else {\n return mergedConfig[property]\n }\n } else {\n console.log(`Config ${property} does not exists`)\n }\n }\n }\n)\n","const entitiesFBP = [\n {\n name: 'products',\n selector: 'id',\n cosmos: 'products',\n mongo: { APL: 'products', AFH: 'fbp-merch-products' }\n },\n {\n name: 'prices',\n selector: 'sku,currency,assortment',\n cosmos: 'prices',\n mongo: { APL: 'prices', AFH: 'fbp-merch-prices' }\n },\n {\n name: 'skus',\n selector: 'id',\n cosmos: 'skus',\n mongo: { APL: 'skus', AFH: 'fbp-merch-skus' }\n },\n {\n name: 'referentials',\n selector: 'code,type',\n cosmos: 'referentials',\n mongo: { APL: 'referentials', AFH: 'fbp-merch-referentials' }\n },\n {\n name: 'assets',\n selector: 'assetId',\n cosmos: 'assets',\n mongo: { APL: 'assets', AFH: 'fbp-merch-assets' }\n }\n];\nconst entitiesWFJ = [\n {\n name: 'products',\n selector: 'id',\n cosmos: 'products',\n mongo: { APL: 'wfj-resource-products', AFH: 'wfj-merch-products' }\n },\n {\n name: 'prices',\n selector: 'id',\n cosmos: 'prices',\n mongo: { APL: 'wfj-resource-prices', AFH: 'wfj-merch-prices' }\n },\n {\n name: 'skus',\n selector: 'id',\n cosmos: 'skus',\n mongo: { APL: 'wfj-resource-skus', AFH: 'wfj-merch-skus' }\n },\n {\n name: 'referentials',\n selector: 'code,type',\n cosmos: 'referentials',\n mongo: { APL: 'wfj-resource-referentials', AFH: 'wfj-merch-referentials' }\n },\n {\n name: 'assets',\n selector: 'assetId',\n cosmos: 'assets',\n mongo: { APL: 'wfj-resource-assets', AFH: 'wfj-merch-assets' }\n }\n];\nconst entitiesFSH = [\n {\n name: 'assets',\n selector: 'assetId',\n cosmos: 'assets',\n mongo: { AFH: 'fsh-merch-products' }\n },\n {\n name: 'boards',\n selector: 'id',\n cosmos: 'boards',\n mongo: { AFH: 'fsh-merch-boards' }\n },\n {\n name: 'bundlethemes',\n selector: 'id',\n cosmos: 'bundlethemes',\n mongo: { AFH: 'fsh-merch-bundlethemes' }\n },\n {\n name: 'categories',\n selector: 'id',\n cosmos: 'categories',\n mongo: { AFH: 'fsh-merch-categories' }\n },\n {\n name: 'evententries',\n selector: 'id',\n cosmos: 'evententries',\n mongo: { AFH: 'fsh-merch-evententries' }\n },\n {\n name: 'eventEntries',\n selector: 'id',\n cosmos: 'eventEntries',\n mongo: { AFH: 'fsh-merch-eventEntries' }\n },\n {\n name: 'events',\n selector: 'id',\n cosmos: 'events',\n mongo: { AFH: 'fsh-merch-events' }\n },\n {\n name: 'geoassets',\n selector: 'id',\n cosmos: 'geoassets',\n mongo: { AFH: 'fsh-merch-geoassets' }\n },\n {\n name: 'items',\n selector: 'id',\n cosmos: 'items',\n mongo: { AFH: 'fsh-merch-items' }\n },\n {\n name: 'looks',\n selector: 'id',\n cosmos: 'looks',\n mongo: { AFH: 'fsh-merch-looks' }\n },\n {\n name: 'notifications',\n selector: 'id',\n cosmos: 'notifications',\n mongo: { AFH: 'fsh-merch-notifications' }\n },\n {\n name: 'prices',\n selector: 'id',\n cosmos: 'prices',\n mongo: { AFH: 'fsh-merch-prices' }\n },\n {\n name: 'products',\n selector: 'id',\n cosmos: 'products',\n mongo: { AFH: 'fsh-merch-products' }\n },\n {\n name: 'productsmerch',\n selector: 'productCode',\n cosmos: 'productsmerch',\n mongo: { AFH: 'fsh-merch-productsmerch' }\n },\n {\n name: 'referentials',\n selector: 'id',\n cosmos: 'referentials',\n mongo: { AFH: 'fsh-merch-referentials' }\n },\n {\n name: 'seasonaldata',\n selector: 'id',\n cosmos: 'seasonaldata',\n mongo: { AFH: 'fsh-merch-seasonaldata' }\n },\n {\n name: 'skus',\n selector: 'id',\n cosmos: 'skus',\n mongo: { AFH: 'fsh-merch-skus' }\n },\n {\n name: 'styles',\n selector: 'id',\n cosmos: 'styles',\n mongo: { AFH: 'fsh-merch-styles' }\n }\n];\nconst state = {\n divisions: ['3DIV', 'FBP', 'FSH', 'WFJ'],\n currentDivision: '',\n entities: {\n FBP: entitiesFBP,\n FSH: entitiesFSH,\n WFJ: entitiesWFJ,\n '3DIV': []\n }\n};\nexport default {\n namespaced: true,\n state,\n actions: {\n changeDivision(context, division) {\n context.commit('CHANGE_DIVISION', division);\n }\n },\n mutations: {\n CHANGE_DIVISION(state, division) {\n state.currentDivision = division;\n }\n }\n};\n","import axios from '@/utils/axios'\nimport config from '@/utils/config'\nimport { buildErrorMessage } from '@/services/common.js'\n\nexport async function getCheck() {\n try {\n const { data } = await axios.get(\n `${config.BACKEND_BASE_URL}${config.PATH_API_CHECK}`\n )\n return data\n } catch (err) {\n const message = buildErrorMessage(err, {})\n throw new Error(message)\n }\n}\n\nexport async function getCheckErrors() {\n try {\n const { data } = await axios.get(\n `${config.BACKEND_BASE_URL}${config.PATH_API_CHECKERRORS}`\n )\n return data\n } catch (err) {\n const message = buildErrorMessage(err, {})\n throw new Error(message)\n }\n}\n\nexport async function getCheckpoint() {\n try {\n const { data } = await axios.get(\n `${config.BACKEND_BASE_URL}${config.PATH_API_CHECKPOINT}`\n )\n return data\n } catch (err) {\n const message = buildErrorMessage(err, {})\n throw new Error(message)\n }\n}\n","import { getCheck, getCheckErrors, getCheckpoint } from '@/services/check.js'\nimport { HTTP_STATE } from '@/services/common.js'\n\nconst state = {\n counts: { state: HTTP_STATE.LOADING, values: null, errors: [] },\n errorCounts: { state: HTTP_STATE.LOADING, values: null, errors: [] },\n checkpoint: { state: HTTP_STATE.LOADING, values: null, errors: [] }\n}\nexport default {\n namespaced: true,\n state,\n getters: {\n counts_has_errors(state) {\n return state.counts.errors > 0 ? true : false\n },\n errorCounts_has_errors(state) {\n return state.errorCounts.errors > 0 ? true : false\n },\n checkpoint_has_errors(state) {\n return state.checkpoint.errors > 0 ? true : false\n }\n },\n actions: {\n async getCounts(context) {\n try {\n context.commit('COUNTS_STATE', HTTP_STATE.LOADING)\n const checkResponse = await getCheck()\n context.commit('COUNTS_CHANGED', checkResponse)\n context.commit('COUNTS_STATE', HTTP_STATE.OK)\n } catch (err) {\n context.commit('COUNTS_STATE', HTTP_STATE.ERROR)\n context.commit('COUNTS_ERRORS', [err])\n }\n },\n async getErrorCounts(context) {\n try {\n context.commit('ERROR_COUNTS_STATE', HTTP_STATE.LOADING)\n const checkResponse = await getCheckErrors()\n context.commit('ERROR_COUNTS_CHANGED', checkResponse)\n context.commit('ERROR_COUNTS_STATE', HTTP_STATE.OK)\n } catch (err) {\n context.commit('ERROR_COUNTS_STATE', HTTP_STATE.ERROR)\n context.commit('ERROR_COUNTS_ERRORS', [err])\n }\n },\n async getCheckpoint(context) {\n try {\n context.commit('CHECKPOINT_STATE', HTTP_STATE.LOADING)\n const checkResponse = await getCheckpoint()\n context.commit('CHECKPOINT_CHANGED', checkResponse)\n context.commit('CHECKPOINT_STATE', HTTP_STATE.OK)\n } catch (err) {\n context.commit('CHECKPOINT_STATE', HTTP_STATE.ERROR)\n context.commit('CHECKPOINT_ERRORS', [err])\n }\n }\n },\n mutations: {\n COUNTS_CHANGED(state, response) {\n state.counts.values = response\n },\n COUNTS_STATE(state, status) {\n state.counts.state = status\n },\n COUNTS_ERRORS(state, errors) {\n state.counts.errors = errors\n },\n ERROR_COUNTS_CHANGED(state, response) {\n state.errorCounts.values = response\n },\n ERROR_COUNTS_STATE(state, status) {\n state.errorCounts.state = status\n },\n ERRORCOUNTS_ERRORS(state, errors) {\n state.errorCounts.errors = errors\n },\n CHECKPOINT_CHANGED(state, response) {\n state.checkpoint.values = response\n },\n CHECKPOINT_STATE(state, status) {\n state.checkpoint.state = status\n },\n CHECKPOINT_ERRORS(state, errors) {\n state.checkpoint.errors = errors\n }\n }\n}\n","import axios from '@/utils/axios'\nimport { buildErrorMessage } from './common'\nimport config from '@/utils/config'\n\nasync function getDocument(params) {\n try {\n const { data } = await axios.get(\n `${config.BACKEND_BASE_URL}${config.PATH_API_COSMOS_FIND}`,\n {\n params\n }\n )\n return data\n } catch (err) {\n const message = buildErrorMessage(err, params)\n throw new Error(message)\n }\n}\n\nexport default {\n getDocument\n}\n","import cosmosService from '@/services/cosmos.js';\n\nconst state = {\n document: null,\n errors: [],\n state: 'LOADING',\n messages: []\n};\nexport default {\n namespaced: true,\n state,\n getters: {\n hasErrors: state => state.errors.length > 0,\n hasDocument: state => !!state.document,\n content: state => JSON.stringify(state.document, null, '\\t'),\n errors: state => state.errors,\n state: state => state.state\n },\n actions: {\n async getDocument(context, params) {\n context.commit('SET_STATE', 'LOADING');\n context.commit('SET_DOCUMENT', null);\n context.commit('SET_MESSAGES', []);\n context.commit('SET_ERROR', []);\n try {\n const documents = await cosmosService.getDocument(params);\n if (!documents[0]) {\n context.commit('SET_STATE', 'ERROR');\n context.commit('SET_ERROR', [{message: 'Document not found'}]);\n } else {\n context.commit('SET_DOCUMENT', documents[0]);\n context.commit('SET_STATE', 'OK');\n }\n } catch (err) {\n context.commit('SET_STATE', 'ERROR');\n context.commit('SET_ERROR', [err]);\n }\n }\n },\n mutations: {\n SET_DOCUMENT(state, document) {\n state.document = document;\n },\n SET_STATE(state, value) {\n state.state = value;\n },\n SET_ERROR(state, value) {\n state.errors = value;\n },\n SET_MESSAGES(state, messages) {\n state.messages = messages;\n }\n }\n};\n","import axios from '@/utils/axios'\nimport { buildErrorMessage } from './common'\nimport config from '@/utils/config'\n\nasync function getDocument(params) {\n try {\n const {\n data\n } = await axios.get(\n `${config.BACKEND_BASE_URL}${config.PATH_API_ATLAS_FIND}`,\n { params }\n )\n return data\n } catch (err) {\n const message = buildErrorMessage(err, params)\n throw new Error(message)\n }\n}\nexport default {\n getDocument\n}\n","import mongo from '@/services/mongo.js';\n\nconst state = {\n document: {},\n errors: [],\n state: 'LOADING',\n messages: []\n};\nexport default {\n namespaced: true,\n state,\n getters: {\n hasErrors: state => state.errors.length > 0,\n hasDocument: state => !!state.document,\n content: state => JSON.stringify(state.document, null, '\\t'),\n errors: state => state.errors,\n state: state => state.state\n },\n actions: {\n async getDocument(context, params) {\n context.commit('SET_STATE', 'LOADING');\n context.commit('SET_DOCUMENT', null);\n context.commit('SET_MESSAGES', []);\n context.commit('SET_ERROR', []);\n try {\n const documents = await mongo.getDocument(params);\n if (!documents[0]) {\n context.commit('SET_STATE', 'ERROR');\n context.commit('SET_ERROR', [{message: 'Document not found'}]);\n } else {\n context.commit('SET_DOCUMENT', documents[0]);\n context.commit('SET_STATE', 'OK');\n }\n } catch (err) {\n context.commit('SET_STATE', 'ERROR');\n context.commit('SET_ERROR', [err]);\n }\n }\n },\n mutations: {\n SET_DOCUMENT(state, document) {\n state.document = document;\n },\n SET_STATE(state, value) {\n state.state = value;\n },\n SET_ERROR(state, value) {\n state.errors = value;\n },\n SET_MESSAGES(state, messages) {\n state.messages = messages;\n }\n }\n};\n","import mongo from '@/services/mongo.js';\n\nconst state = {\n document: {},\n errors: [],\n state: 'LOADING',\n messages: []\n};\nexport default {\n namespaced: true,\n state,\n getters: {\n hasErrors: state => state.errors.length > 0,\n hasDocument: state => !!state.document,\n content: state => JSON.stringify(state.document, null, '\\t'),\n errors: state => state.errors,\n state: state => state.state\n },\n actions: {\n async getDocument(context, params) {\n context.commit('SET_STATE', 'LOADING');\n context.commit('SET_DOCUMENT', null);\n context.commit('SET_MESSAGES', []);\n context.commit('SET_ERROR', []);\n try {\n const documents = await mongo.getDocument(params);\n if (!documents[0]) {\n context.commit('SET_STATE', 'ERROR');\n context.commit('SET_ERROR', [{message: 'Document not found'}]);\n } else {\n context.commit('SET_DOCUMENT', documents[0]);\n context.commit('SET_STATE', 'OK');\n }\n } catch (err) {\n context.commit('SET_STATE', 'ERROR');\n context.commit('SET_ERROR', [err]);\n }\n }\n },\n mutations: {\n SET_DOCUMENT(state, document) {\n state.document = document;\n },\n SET_STATE(state, value) {\n state.state = value;\n },\n SET_ERROR(state, value) {\n state.errors = value;\n },\n SET_MESSAGES(state, messages) {\n state.messages = messages;\n }\n }\n};\n","import errorsExtendedService from '@/services/errors.js'\n\nconst state = {\n document: null,\n errors: [],\n state: 'LOADING',\n messages: []\n}\nexport default {\n namespaced: true,\n state,\n getters: {\n hasErrors: state => state.errors.length > 0,\n hasDocument: state => (state.document ? true : false),\n content: state => JSON.stringify(state.document, null, '\\t'),\n errors: state => state.errors,\n state: state => state.state\n },\n actions: {\n async getDocument(context, params) {\n context.commit('SET_STATE', 'LOADING')\n context.commit('SET_DOCUMENT', null)\n context.commit('SET_MESSAGES', [])\n context.commit('SET_ERROR', [])\n try {\n const {\n messages,\n content: document\n } = await errorsExtendedService.getDocument(params)\n\n context.commit('SET_DOCUMENT', document)\n context.commit('SET_MESSAGES', messages)\n context.commit('SET_STATE', 'OK')\n } catch (err) {\n context.commit('SET_STATE', 'ERROR')\n context.commit('SET_ERROR', [err])\n }\n }\n },\n mutations: {\n SET_DOCUMENT(state, document) {\n state.document = document\n },\n SET_STATE(state, value) {\n state.state = value\n },\n SET_ERROR(state, value) {\n state.errors = value\n },\n SET_MESSAGES(state, messages) {\n state.messages = messages\n }\n }\n}\n","import cosmos from '@/store/modules/home/cosmos.js';\nimport mongoAFH from '@/store/modules/home/mongoAFH.js';\nimport mongoAPL from '@/store/modules/home/mongoAPL.js';\nimport errors from '@/store/modules/home/errors.js';\n\nexport default {\n namespaced: true,\n modules: {\n cosmos,\n mongoAFH,\n mongoAPL,\n errors\n }\n};\n","function fromDocument(document, tsField) {\n const timestamp = document[tsField]\n if (!timestamp) {\n return 'unknown'\n }\n try {\n const dateFormatter = new Intl.DateTimeFormat('fr-FR', {\n timeZone:'Europe/Paris',\n year: 'numeric',\n month: '2-digit',\n day: '2-digit',\n hour: '2-digit',\n minute: '2-digit',\n second: '2-digit'\n })\n const timestampAsDate = new Date(timestamp)\n return dateFormatter.format(timestampAsDate)\n } catch (err) {\n console.log(err)\n return 'bad format'\n }\n}\n\nexport default {\n fromDocument\n}\n","import convertToDateColumn from './convertToDateColumn'\n\nconst defaultValue = 'unknown'\n\nfunction fromDocuments(documents) {\n return documents.map(document => ({\n index: document._id,\n date: convertToDateColumn.fromDocument(document, 'storedTimestamp'),\n namespace: valueOrDefault(document?.occuredOn?.eventHub?.namespace),\n name: valueOrDefault(document?.occuredOn?.eventHub?.name),\n error: valueOrDefault(document?.error),\n errorMessage: document?.errorType ? document?.errorType : document?.errorMessage,\n receivedMessage: valueOrDefault(document?.receivedMessage),\n status: document?.status,\n lastReplay: getLastReplay(document?.replays),\n replays: document?.replays?.reverse().map(replay => {\n replay['formatedTS'] = convertToDateColumn.fromDocument(replay, 'timestamp')\n return replay\n }),\n tags: document?.tags,\n document: JSON.stringify(document, null, ' ')\n }))\n}\n\n\n\nfunction getLastReplay(value) {\n return value && value.length > 0 ? value[value.length - 1] : {}\n}\n\nfunction valueOrDefault(value) {\n return value ? value : defaultValue\n}\n\nexport default {fromDocuments}\n","import errorsService from '@/services/errors.js'\nimport convertToRows from './converters/convertToRows'\n\nconst state = {\n rows: [],\n errors: [],\n distinctTags: [],\n isLoading: true,\n pageCount: 0,\n stats: [],\n statsType: [],\n count: 0,\n zone: 'EXTENDED',\n hasErrors: false,\n notifyMessage: '',\n notifyLevel: ''\n}\nexport default {\n namespaced: true,\n state,\n getters: {\n rows: state => state.rows,\n errors: state => state.errors,\n stats: state => state.stats,\n statsType: state => state.statsType,\n distinctTags: state => state.distinctTags,\n isLoading: state => state.isLoading,\n total: state => state.count,\n hasErrors: state => state.hasErrors\n },\n actions: {\n async loadErrors({commit}, options) {\n commit('loadErrors_loading')\n try {\n const result = await errorsService.getErrorsByFilter(options.query, options.pageSize, options.pageNumber);\n const rows = convertToRows.fromDocuments(result.data)\n commit('count_success', result.total)\n commit('loadPageRows_success', rows)\n } catch (err) {\n commit('error')\n console.log(err)\n throw err\n }\n },\n async loadStatsForHub({commit}, options) {\n try {\n let result = await errorsService.getStats(options.query, \"hub\");\n result = result.filter(stat => stat._id.hub != null)\n const stats = {}\n for (let stat of result) {\n let hubname = stat._id.hub.split(\"-\")\n if (!stats[hubname[0]]) stats[hubname[0]] = []\n stats[hubname[0]].push({\"hub\": hubname[1], \"count\": stat.count})\n }\n commit('stats_success', stats)\n } catch (err) {\n commit('error')\n console.log(err)\n throw err\n }\n },\n async loadStatsForType({commit}, options) {\n try {\n let result = await errorsService.getStats(options.query, \"type\");\n result = result.filter(stat => stat._id.err != null && stat._id.err != \"\" )\n commit('statstype_success', result)\n } catch (err) {\n commit('error')\n console.log(err)\n throw err\n }\n },\n async loadTags({commit}) {\n try {\n let result = await errorsService.getTags();\n commit('tags_success', result)\n } catch (err) {\n commit('error')\n console.log(err)\n throw err\n }\n }\n },\n mutations: {\n loadErrors_loading(state, zone) {\n state.isLoading = true\n state.errors = []\n state.rows = []\n state.zone = zone\n state.hasErrors = false\n },\n loadErrors_success(state, sortedIds) {\n state.isLoading = false\n state.errors = sortedIds\n },\n error(state) {\n state.isLoading = false\n state.hasErrors = true\n },\n loadPageRows_loading(state) {\n state.isLoading = true\n state.rows = []\n state.hasErrors = false\n },\n loadPageRows_success(state, rows) {\n state.isLoading = false\n state.rows = rows\n },\n count_success(state, total) {\n state.count = total\n },\n stats_success(state, stats) {\n state.stats = stats\n },\n statstype_success(state, stats) {\n state.statsType = stats\n },\n tags_success(state, tags) {\n state.distinctTags = tags\n }\n }\n}\n","import table from '@/store/modules/errors/table.js'\n\nexport default {\n namespaced: true,\n modules: { table }\n}\n","import axios from '@/utils/axios'\nimport common from './common'\nimport config from '@/utils/config'\nasync function getAllMetrics() {\n try {\n console.log(`${config.BACKEND_BASE_URL}${config.PATH_API_SONAR}`);\n const { data } = await axios.get(\n `${config.BACKEND_BASE_URL}${config.PATH_API_SONAR}`\n )\n return data\n } catch (err) {\n const message = common.buildErrorMessage(err)\n throw new Error(message)\n }\n}\nexport default {\n getAllMetrics\n}\n","import sonarService from '@/services/sonar'\nimport { HTTP_STATE } from '@/services/common'\nexport default {\n namespaced: true,\n state: {\n projects: [],\n errors: [],\n state: 'LOADING'\n },\n getters: {},\n actions: {\n async getAllMetrics(context) {\n context.commit('SET_STATE', HTTP_STATE.LOADING)\n context.commit('SET_PROJECTS', [])\n // context.commit('SET_MESSAGES', [])\n context.commit('SET_ERROR', [])\n try {\n const projects = await sonarService.getAllMetrics()\n context.commit('SET_PROJECTS', projects)\n context.commit('SET_STATE', HTTP_STATE.OK)\n } catch (err) {\n context.commit('SET_STATE', HTTP_STATE.ERROR)\n context.commit('SET_ERROR', [err])\n }\n }\n },\n mutations: {\n SET_PROJECTS(state, projects) {\n state.projects = projects\n },\n SET_STATE(state, value) {\n state.state = value\n },\n SET_ERROR(state, value) {\n state.errors = value\n }\n }\n}\n","import axios from '@/utils/axios';\nimport common from './common';\nimport config from '@/utils/config';\n\nasync function getLatestSchemas(entity, worker, div) {\n try {\n const { data } = await axios.post(`${config.BACKEND_BASE_URL}/workerapis`, {\n header: {\n componentTrigram: 'wbr',\n env: config.PEARL_ENVIRONMENT,\n division: div.toLowerCase(),\n entities: [worker]\n },\n payload: {\n method: 'GET',\n path: '/schemas',\n params: { documentType: entity, activeOnly: 'false' }\n }\n });\n if (Array.isArray(data.responses[0].data)) return data.responses[0].data;\n else return [data.responses[0].data];\n } catch (err) {\n const message = common.buildErrorMessage(err);\n throw new Error(message);\n }\n}\n\nexport default {\n getLatestSchemas\n};\n","import schemaRegService from '@/services/schemareg'\nimport {workersConfig} from '@/store/modules/workers.js'\n\nexport default {\n namespaced: true,\n state: {\n schemas: [],\n errors: [],\n loading: true\n },\n getters: {},\n actions: {\n async getLatestSchemas(context, div) {\n context.commit('SET_LOADING', true)\n context.commit('SET_ERROR', [])\n try {\n const schemas = {}\n for await (const entity of Object.keys(workersConfig.schemas[div])) {\n try {\n schemas[entity] = await schemaRegService.getLatestSchemas(entity, workersConfig.schemas[div][entity], div)\n } catch (error) {\n console.log('Could not find schema for entity: ' + entity)\n }\n }\n context.commit('SET_SCHEMAS', schemas)\n context.commit('SET_LOADING', false)\n } catch (err) {\n context.commit('SET_LOADING', false)\n context.commit('SET_ERROR', [err])\n }\n }\n },\n mutations: {\n SET_SCHEMAS(state, schemas) {\n state.schemas = schemas\n },\n SET_LOADING(state, value) {\n state.loading = value\n },\n SET_ERROR(state, value) {\n state.errors = value\n }\n }\n}\n","import auth from '@/services/auth'\nimport jwtDecode from 'jwt-decode'\nimport axios from '@/utils/axios'\nconst pearlGroupRegexp = 'G-GRES-PEARL-(.*)-DTZ-(.*)'\n\nexport default {\n namespaced: true,\n state: {\n access_token: null,\n user: null,\n loginFinished: false\n },\n getters: {\n isAuthenticated(state) {\n return state.user&&state.loginFinished ? true : false;\n },\n accessToken(state) {\n return state.accessToken;\n },\n user(state) {\n return state.user;\n }\n },\n mutations: {\n INIT_AUTHENTICATION(state) {\n state.access_token = null\n state.user = null\n },\n SET_ACCESS_TOKEN(state, payload) {\n state.access_key = payload.accessToken\n axios.defaults.headers.common[\n 'Authorization'\n ] = `Bearer ${payload.accessToken}`\n },\n SET_USER(state, payload) {\n state.user = payload.user\n }\n },\n actions: {\n async initAuthentication({ dispatch, commit, state }) {\n const isAuthenticated = await auth.authService.isUserLoggedIn();\n if (isAuthenticated) {\n const accessToken = await auth.authService.getAccessToken();\n commit('SET_ACCESS_TOKEN', { accessToken });\n dispatch('setUser', accessToken);\n state.loginFinished = true;\n } else {\n state.loginFinished = false;\n dispatch('startLogin');\n }\n },\n\n async setUser({ dispatch, commit }, accessToken) {\n const decoded = jwtDecode(accessToken)\n\n const groups = Array.isArray(decoded.Groups)\n ? decoded.Groups\n : [decoded.Groups]\n\n let res = null\n const regexp = new RegExp(pearlGroupRegexp)\n for (const group of groups) {\n res = regexp.exec(group)\n if (res) {\n break\n }\n }\n\n if (res) {\n const user = {\n ...decoded,\n role: res[2],\n division: res[1]\n }\n\n commit('SET_USER', { user })\n dispatch('config/changeDivision', user.division, { root: true })\n // router.push('/')\n } else {\n // Should not be allowed to acces as it is not in the group\n console.error('User has no PEARL DTZ group')\n commit('SET_USER', { user: decoded })\n }\n },\n async handleLoginResponse({ dispatch, commit }) {\n // be sure everything is clean\n try {\n commit('INIT_AUTHENTICATION')\n await auth.authService.handleLoginRedirect()\n const accessToken = await auth.authService.getAccessToken()\n commit('SET_ACCESS_TOKEN', { accessToken })\n dispatch('setUser', accessToken)\n } catch (error) {\n commit('AUTHENTICATION_ERROR', { error })\n }\n },\n async startLogin({ commit }) {\n commit('INIT_AUTHENTICATION')\n await auth.authService.login()\n },\n async startLogout({ commit }) {\n commit('INIT_AUTHENTICATION')\n auth.authService.logout()\n }\n }\n}\n","import versionService from '@/services/releases';\nimport { workersConfig } from '@/store/modules/workers.js';\n\nexport default {\n namespaced: true,\n state: {\n releases: {},\n releasesOnProdData: {},\n workerInfos: {},\n workerHealth: {},\n errors: [],\n loading: false\n },\n getters: {},\n actions: {\n async getADOReleases(context) {\n context.commit('SET_LOADING', true);\n context.commit('SET_ERROR', []);\n try {\n const releases = await versionService.getADOReleases();\n context.commit('SET_RELEASES', releases);\n context.commit('SET_LOADING', false);\n } catch (err) {\n context.commit('SET_LOADING', false);\n context.commit('SET_ERROR', [err]);\n }\n },\n\n async getReleasesOnProdData(context) {\n try {\n let releasesOnProdData = await versionService.getReleasesOnProdData();\n context.commit('SET_RELEASES_ON_PROD', releasesOnProdData);\n } catch (err) {\n context.commit('SET_RELEASES_ON_PROD', {});\n console.error(err);\n }\n },\n\n async getWorkerInfos(context, metadata) {\n context.commit('SET_ERROR', []);\n const infoLoading = {};\n for (let release of metadata.artifacts) {\n if (\n workersConfig.metadata[release.artifact] &&\n workersConfig.metadata[release.artifact].hasHealthInfo\n ) {\n infoLoading[release.artifact] = [\n {\n status: 0,\n statusText: 'Checking...',\n data: { status: 'LOADING' }\n }\n ];\n }\n }\n context.commit('SET_WORKERINFOS', infoLoading);\n const infos = {};\n try {\n for (let release of metadata.artifacts) {\n infos[release.zone + '_' + release.artifact] = [];\n if (\n workersConfig.metadata[release.artifact] &&\n workersConfig.metadata[release.artifact].hasHealthInfo\n ) {\n const workerMetadata = workersConfig.metadata[release.artifact];\n const params = {\n trigram: workerMetadata.trigram,\n env: release.env,\n division: release.zone\n };\n if (\n workerMetadata.entities &&\n release.zone.toUpperCase() in workerMetadata.entities\n ) {\n params.entities =\n workerMetadata.entities[release.zone.toUpperCase()];\n }\n infos[release.zone + '_' + release.artifact].push(\n versionService.getWorkerInfos(params)\n );\n }\n }\n for (let trigram of Object.keys(infos)) {\n infos[trigram] = await Promise.all(infos[trigram]);\n infos[trigram] = infos[trigram].flat(1);\n }\n context.commit('SET_WORKERINFOS', infos);\n } catch (err) {\n context.commit('SET_ERROR', [err]);\n }\n },\n\n async getWorkerHealth(context, metadata) {\n context.commit('SET_ERROR', []);\n const healthLoading = {};\n for (let release of metadata.artifacts) {\n if (\n workersConfig.metadata[release.artifact] &&\n workersConfig.metadata[release.artifact].hasHealthInfo\n ) {\n healthLoading[release.artifact] = [\n {\n status: 0,\n statusText: 'Checking...',\n data: { status: 'LOADING' }\n }\n ];\n }\n }\n context.commit('SET_WORKERHEALTH', healthLoading);\n const healths = {};\n try {\n for (let release of metadata.artifacts) {\n healths[release.zone + '_' + release.artifact] = [];\n if (\n workersConfig.metadata[release.artifact] &&\n workersConfig.metadata[release.artifact].hasHealthInfo\n ) {\n const workerMetadata = workersConfig.metadata[release.artifact];\n const params = {\n trigram: workerMetadata.trigram,\n env: release.env,\n division: release.zone\n };\n if (\n workerMetadata.entities &&\n release.zone.toUpperCase() in workerMetadata.entities\n ) {\n params.entities =\n workerMetadata.entities[release.zone.toUpperCase()];\n }\n healths[release.zone + '_' + release.artifact].push(\n versionService.getWorkerHealth(params)\n );\n }\n }\n for (let trigram of Object.keys(healths)) {\n healths[trigram] = await Promise.all(healths[trigram]);\n healths[trigram] = healths[trigram].flat(1);\n }\n context.commit('SET_WORKERHEALTH', healths);\n } catch (err) {\n context.commit('SET_ERROR', [err]);\n }\n }\n },\n mutations: {\n SET_RELEASES(state, releases) {\n state.releases = releases;\n },\n SET_RELEASES_ON_PROD(state, releasesOnProdData) {\n state.releasesOnProdData = releasesOnProdData;\n },\n SET_WORKERINFOS(state, workerInfos) {\n state.workerInfos = workerInfos;\n },\n SET_WORKERHEALTH(state, workerHealth) {\n state.workerHealth = workerHealth;\n },\n SET_LOADING(state, value) {\n state.loading = value;\n },\n SET_ERROR(state, value) {\n state.errors = value;\n }\n }\n};\n","import axios from '@/utils/axios';\nimport { buildErrorMessage } from './common';\nimport config from '@/utils/config';\n\nexport async function getStorages() {\n try {\n const { data } = await axios.get(\n `${config.BACKEND_BASE_URL}/azstorage/storages`\n );\n return data;\n } catch (error) {\n const message = buildErrorMessage(error);\n throw new Error(message);\n }\n}\n\nexport async function addStorage(storage) {\n try {\n const { data } = await axios.post(\n `${config.BACKEND_BASE_URL}/azstorage/add/storage`,\n storage\n );\n return data;\n } catch (err) {\n const message = buildErrorMessage(err, storage);\n throw new Error(message);\n }\n}\n\nexport async function addContainer(container) {\n try {\n const { data } = await axios.post(\n `${config.BACKEND_BASE_URL}/azstorage/add/container`,\n container\n );\n return data;\n } catch (err) {\n const message = buildErrorMessage(err, container);\n throw new Error(message);\n }\n}\n\nexport async function addClient(client) {\n try {\n const { data } = await axios.post(\n `${config.BACKEND_BASE_URL}/azstorage/add/client`,\n client\n );\n return data;\n } catch (err) {\n const message = buildErrorMessage(err, client);\n throw new Error(message);\n }\n}\n\nexport async function deleteStorage(storage) {\n try {\n const { data } = await axios.delete(\n `${config.BACKEND_BASE_URL}/azstorage/storage/${storage.name}`\n );\n return data;\n } catch (err) {\n const message = buildErrorMessage(err, storage);\n throw new Error(message);\n }\n}\n\nexport async function deleteContainer(container) {\n try {\n const { data } = await axios.delete(\n `${config.BACKEND_BASE_URL}/azstorage/storage/${container.storage}/container/${container.name}`\n );\n return data;\n } catch (err) {\n const message = buildErrorMessage(err, container);\n throw new Error(message);\n }\n}\n\nexport async function deleteClient(client) {\n try {\n const { data } = await axios.delete(\n `${config.BACKEND_BASE_URL}/azstorage/storage/${client.storage}/container/${client.container}/client/${client.clientId}`\n );\n return data;\n } catch (err) {\n const message = buildErrorMessage(err, client);\n throw new Error(message);\n }\n}\n","import {\n addStorage,\n addContainer,\n addClient,\n getStorages,\n deleteStorage,\n deleteClient,\n deleteContainer\n} from '@/services/storage';\n\nexport default {\n namespaced: true,\n state: {\n currentContainer: null,\n currentStorage: null,\n storages: [],\n errors: [],\n loading: true\n },\n actions: {\n setCurrentContainer(context, container) {\n context.commit('SET_CURRENT_CONTAINER', container);\n },\n setCurrentStorage(context, storage) {\n context.commit('SET_CURRENT_STORAGE', storage);\n },\n updateAfterAddClient(context, client) {\n const storage = context.state.storages.find(\n s => s.name === client.storage\n );\n const container = storage.containers[client.container];\n console.log(container);\n context.commit('SET_CURRENT_STORAGE', storage);\n context.commit('SET_CURRENT_CONTAINER', {\n name: client.container,\n ...container\n });\n },\n updateAfterAddContainer(context, container) {\n const storage = context.state.storages.find(\n s => s.name === container.storage\n );\n const currentContainer = storage.containers[container.container];\n\n context.commit('SET_CURRENT_STORAGE', storage);\n if (currentContainer) {\n context.commit('SET_CURRENT_CONTAINER', {\n name: container.container,\n currentContainer\n });\n } else {\n context.commit('SET_CURRENT_CONTAINER', null);\n }\n },\n updateAfterAddStorage(context, updatedStorage) {\n const storage = context.state.storages.find(\n s => s.name === updatedStorage.storage\n );\n\n context.commit('SET_CURRENT_STORAGE', storage);\n context.commit('SET_CURRENT_CONTAINER', null);\n },\n async getStorages(context) {\n context.commit('SET_LOADING', true);\n context.commit('SET_ERROR', []);\n try {\n const storages = await getStorages();\n context.commit('SET_STORAGE', storages);\n context.commit('SET_LOADING', false);\n } catch (err) {\n context.commit('SET_ERROR', [err]);\n context.commit('SET_LOADING', false);\n }\n },\n async addStorage(context, storage) {\n context.commit('SET_LOADING', true);\n context.commit('SET_ERROR', []);\n try {\n await addStorage(storage);\n const storages = await getStorages();\n context.commit('SET_STORAGE', storages);\n context.dispatch('updateAfterAddStorage', storage);\n context.commit('SET_LOADING', false);\n } catch (err) {\n context.commit('SET_ERROR', [err]);\n context.commit('SET_LOADING', false);\n }\n },\n async addContainer(context, container) {\n context.commit('SET_LOADING', true);\n context.commit('SET_ERROR', []);\n try {\n await addContainer(container);\n const storages = await getStorages();\n\n context.commit('SET_STORAGE', storages);\n context.dispatch('updateAfterAddContainer', container);\n context.commit('SET_LOADING', false);\n } catch (err) {\n context.commit('SET_ERROR', [err]);\n context.commit('SET_LOADING', false);\n }\n },\n async addClient(context, client) {\n context.commit('SET_LOADING', true);\n context.commit('SET_ERROR', []);\n try {\n await addClient(client);\n const storages = await getStorages();\n context.commit('SET_STORAGE', storages);\n context.dispatch('updateAfterAddClient', client);\n context.commit('SET_LOADING', false);\n } catch (err) {\n context.commit('SET_ERROR', [err]);\n context.commit('SET_LOADING', false);\n }\n },\n async deleteStorage(context, storage) {\n context.commit('SET_LOADING', true);\n context.commit('SET_ERROR', []);\n try {\n await deleteStorage(storage);\n const storages = await getStorages();\n context.commit('SET_STORAGE', storages);\n context.commit('SET_CURRENT_STORAGE', null);\n context.commit('SET_CURRENT_CONTAINER', null);\n context.commit('SET_LOADING', false);\n } catch (err) {\n context.commit('SET_ERROR', [err]);\n context.commit('SET_LOADING', false);\n }\n },\n async deleteContainer(context, container) {\n context.commit('SET_LOADING', true);\n context.commit('SET_ERROR', []);\n try {\n await deleteContainer(container);\n const storages = await getStorages();\n context.commit('SET_STORAGE', storages);\n context.dispatch('updateAfterAddContainer', container);\n context.commit('SET_LOADING', false);\n } catch (err) {\n context.commit('SET_ERROR', [err]);\n context.commit('SET_LOADING', false);\n }\n },\n async deleteClient(context, client) {\n context.commit('SET_LOADING', true);\n context.commit('SET_ERROR', []);\n try {\n await deleteClient(client);\n const storages = await getStorages();\n context.commit('SET_STORAGE', storages);\n context.dispatch('updateAfterAddClient', client);\n context.commit('SET_LOADING', false);\n } catch (err) {\n context.commit('SET_ERROR', [err]);\n context.commit('SET_LOADING', false);\n }\n }\n },\n mutations: {\n SET_STORAGE(state, storages) {\n state.storages = storages;\n },\n SET_LOADING(state, value) {\n state.loading = value;\n },\n SET_ERROR(state, value) {\n state.errors = value;\n },\n SET_CURRENT_CONTAINER(state, container) {\n state.currentContainer = container;\n },\n SET_CURRENT_STORAGE(state, storage) {\n state.currentStorage = storage;\n }\n }\n};\n","import axios from '@/utils/axios';\nimport config from '@/utils/config';\nimport {buildErrorMessage} from \"@/services/common\";\n\nexport async function postRequestForWorkerApis(requestBody) {\n const { data, status } = await axios.post(\n `${config.BACKEND_BASE_URL}/workerapis`,\n requestBody\n );\n return { data, status };\n}\nexport async function getUserRequestsData() {\n const { data, status } = await axios.get(\n `${config.BACKEND_BASE_URL}/workerapis/userRequest`\n );\n return { data, status };\n}\n\nexport async function saveUserRequest(userRequest) {\n try {\n const { data, status } = await axios.post(\n `${config.BACKEND_BASE_URL}/workerapis/userRequest`,\n userRequest\n );\n return { data, status };\n } catch (err) {\n const message = buildErrorMessage(err, {})\n throw new Error(message)\n }\n}\n\nexport async function deleteUserRequestById(id) {\n return await axios.delete(\n `${config.BACKEND_BASE_URL}/workerapis/userRequest/${id}`\n );\n}\n","import {\n deleteUserRequestById,\n getUserRequestsData,\n postRequestForWorkerApis,\n saveUserRequest\n} from '@/services/proxyApi';\n\nexport default {\n namespaced: true,\n state: {\n selectedUserRequest: {},\n userRequestsData: [],\n responseData: '',\n status: '',\n loading: false,\n errors: []\n },\n\n actions: {\n setSelectedUserRequest(context, request) {\n context.commit('SET_SELECTED_REQUEST', request);\n },\n\n async getUserRequests(context) {\n try {\n context.commit('SET_LOADING', true);\n context.commit('SET_SELECTED_REQUEST', {});\n const requests = await getUserRequestsData();\n context.commit('SET_REQUESTS_LIST', requests);\n context.commit('SET_LOADING', false);\n } catch (err) {\n context.commit('SET_LOADING', false);\n }\n },\n async postUserRequest(context, userRequest) {\n try {\n context.commit('SET_LOADING', true);\n context.commit('SET_ERROR', []);\n await saveUserRequest(userRequest);\n await context.dispatch('getUserRequests');\n context.commit('SET_LOADING', false);\n } catch (err) {\n context.commit('SET_ERROR', [err]);\n context.commit('SET_LOADING', false);\n }\n },\n async deleteUserRequest(context, id) {\n try {\n context.commit('SET_LOADING', true);\n context.commit('SET_ERROR', []);\n await deleteUserRequestById(id);\n await context.dispatch('getUserRequests');\n context.commit('SET_LOADING', false);\n } catch (err) {\n context.commit('SET_ERROR', [err]);\n context.commit('SET_LOADING', false);\n }\n },\n async postRequestForWorkerApis(context, requestBody) {\n try {\n const responseBody = await postRequestForWorkerApis(requestBody);\n context.commit('SET_RESPONSE_DATA', responseBody.data);\n context.commit('SET_STATUS', responseBody.status);\n } catch (error) {\n context.commit('SET_STATUS', error.response.status);\n }\n }\n },\n\n mutations: {\n SET_SELECTED_REQUEST(state, data) {\n state.selectedUserRequest = data;\n state.responseData = '';\n },\n SET_RESPONSE_DATA(state, data) {\n state.responseData = JSON.stringify(data, undefined, 4);\n },\n SET_REQUESTS_LIST(state, data) {\n state.userRequestsData = data.data;\n },\n SET_LOADING(state, data) {\n state.loading = data;\n },\n SET_STATUS(state, value) {\n state.status = value;\n },\n SET_ERROR(state, value) {\n state.errors = value;\n }\n }\n};\n","import atlasAdminService from '@/services/atlasadmin.js';\nexport default {\n namespaced: true,\n state: {\n ips: [],\n errors: [],\n loading: true,\n clusters: [],\n clusterPrivileges: [],\n password: null\n },\n actions: {\n async getIps(context) {\n try {\n context.commit('SET_LOADING', true);\n context.commit('SET_ERROR', []);\n const ips = await atlasAdminService.getIps();\n context.commit('SET_IP_LIST', ips);\n context.commit('SET_LOADING', false);\n } catch (err) {\n context.commit('SET_ERROR', [err]);\n context.commit('SET_LOADING', false);\n }\n },\n async addIp(context, ipDetails) {\n try {\n context.commit('SET_LOADING', true);\n context.commit('SET_ERROR', []);\n await atlasAdminService.addIp({\n ipAddress: ipDetails.ip,\n comment: ipDetails.comment\n });\n context.dispatch('getIps');\n } catch (err) {\n context.commit('SET_ERROR', [err]);\n context.commit('SET_LOADING', false);\n }\n },\n async deleteIp(context, ipDetails) {\n try {\n context.commit('SET_LOADING', true);\n context.commit('SET_ERROR', []);\n await atlasAdminService.deleteIp(ipDetails);\n context.dispatch('getIps');\n } catch (err) {\n context.commit('SET_ERROR', [err]);\n context.commit('SET_LOADING', false);\n }\n },\n async getAccessibleClusters(context) {\n try {\n context.commit('SET_LOADING', true);\n context.commit('SET_ERROR', []);\n const clusters = await atlasAdminService.getAccessibleClusters();\n context.commit('SET_CLUSTERS_LIST', clusters);\n context.commit('SET_LOADING', false);\n } catch (err) {\n context.commit('SET_ERROR', [err]);\n context.commit('SET_LOADING', false);\n }\n },\n async getSupportAccessPrivileges(context){\n try {\n context.commit('SET_LOADING', true);\n context.commit('SET_ERROR', []);\n const clusterAccess = await atlasAdminService.getSupportAccessPrivileges();\n context.commit('SET_CLUSTERS_ACCESS_LIST', clusterAccess);\n context.commit('SET_LOADING', false);\n } catch (err) {\n context.commit('SET_ERROR', [err]);\n context.commit('SET_LOADING', false);\n }\n },\n async askForSupportAccess(context, formValues) {\n try {\n context.commit('SET_LOADING', true);\n context.commit('SET_ERROR', []);\n const result = await atlasAdminService.addSupportPrivileges({\n ipAddress: formValues.ip,\n comment: formValues.comment,\n cluster: formValues.cluster\n });\n context.commit('SET_PASSWORD', result);\n context.dispatch('getSupportAccessPrivileges');\n } catch (err) {\n context.commit('SET_ERROR', [err]);\n context.commit('SET_LOADING', false);\n }\n },\n async deleteSupportAccessPrivileges(context, username) {\n try {\n context.commit('SET_LOADING', true);\n context.commit('SET_ERROR', []);\n await atlasAdminService.deleteSupportAccessPrivileges(username);\n context.dispatch('getSupportAccessPrivileges');\n } catch (err) {\n context.commit('SET_ERROR', [err]);\n context.commit('SET_LOADING', false);\n }\n }, \n removePasswordState(context) {\n context.commit('SET_PASSWORD', null);\n }\n },\n mutations: {\n SET_IP_LIST(state, ips) {\n state.ips = ips;\n },\n SET_LOADING(state, value) {\n state.loading = value;\n },\n SET_ERROR(state, value) {\n state.errors = value;\n },\n SET_CLUSTERS_LIST(state, value) {\n state.clusters = value;\n },\n SET_CLUSTERS_ACCESS_LIST(state, value) {\n state.clusterPrivileges = value;\n },\n SET_PASSWORD(state, value) {\n state.password = value;\n }\n }\n};\n","import { buildErrorMessage } from './common';\nimport axios from 'axios';\nimport config from '@/utils/config';\n\nasync function getReleases() {\n try {\n // const data = require('./_local.response.release.notes.prd.json');\n const { data } = await axios.get(`${config.BACKEND_BASE_URL}/releases`);\n return data;\n } catch (err) {\n const message = buildErrorMessage(err);\n throw new Error(message);\n }\n}\n\nasync function getReleasesNote(releaseAName, releaseBName, format) {\n try {\n const { data } = await axios.get(\n `${config.BACKEND_BASE_URL}/releases/note/${releaseAName}/${releaseBName}?format=${format}`\n );\n return data;\n } catch (error) {\n const message = buildErrorMessage(error);\n throw new Error(message);\n }\n}\n\nexport default {\n getReleases,\n getReleasesNote\n};\n","import releaseNotesService from '@/services/release-notes.js';\nexport default {\n namespaced: true,\n state: {\n releases: [],\n releasesMeta: null,\n errors: [],\n loading: true,\n releaseNote: null\n },\n actions: {\n async getReleases(context) {\n try {\n context.commit('SET_LOADING', true);\n context.commit('SET_ERROR', []);\n const releases = await releaseNotesService.getReleases();\n context.commit('SET_RELEASE_LIST', releases);\n context.commit('SET_LOADING', false);\n } catch (err) {\n context.commit('SET_ERROR', [err]);\n context.commit('SET_LOADING', false);\n }\n },\n async getReleaseNote(context, { releaseA, releaseB, format }) {\n try {\n context.commit('SET_LOADING', true);\n context.commit('SET_ERROR', []);\n const releaseNote = await releaseNotesService.getReleasesNote(\n releaseA.releaseName,\n releaseB.releaseName,\n format\n );\n context.commit('SET_RELEASE_NOTE', releaseNote);\n\n context.commit('SET_LOADING', false);\n } catch (err) {\n context.commit('SET_ERROR', [err]);\n context.commit('SET_LOADING', false);\n }\n }\n },\n mutations: {\n SET_RELEASE_LIST(state, releases) {\n state.releases = releases;\n },\n SET_LOADING(state, value) {\n state.loading = value;\n },\n SET_ERROR(state, value) {\n state.errors = value;\n },\n SET_RELEASE_NOTE(state, value) {\n state.releaseNote = value;\n }\n }\n};\n","import axios from '@/utils/axios';\nimport config from '@/utils/config';\n\nlet cancelToken;\n\nexport async function getReferentialData(referentialUri, pageNumber, pageSize) {\n const params = {\n size: pageSize,\n page: pageNumber\n };\n if (typeof cancelToken != typeof undefined) {\n cancelToken.cancel('Operation canceled due to new request.');\n }\n cancelToken = axios.CancelToken.source();\n const { data, status } = await axios.get(\n config.BACKEND_BASE_URL + referentialUri, { params, cancelToken: cancelToken.token });\n return { data, status };\n}\n\nexport async function createReferential(referentialUri, referentialData) {\n const {data, status} = await axios.post(config.BACKEND_BASE_URL + referentialUri, referentialData, {});\n return {data, status}\n}\n\nexport async function updateReferential(\n referentialUri,\n referentialCode,\n referentialData\n) {\n const { data, status } = await axios.put(\n config.BACKEND_BASE_URL + referentialUri + '/' + referentialCode,\n referentialData,\n {}\n );\n return { data, status };\n}\n\nexport async function deleteReferential(referentialUri, referentialCode) {\n const { data, status } = await axios.delete(\n config.BACKEND_BASE_URL + referentialUri + '/' + referentialCode,\n {}\n );\n return { data, status };\n}\n\n// this was implemented because all referentials documents were under 300 document\n// https://dev.azure.com/lpl-sources/ProductServiceCatalog/_git/Apps-PEARL/pullrequest/76935?_a=files&path=/platform/devtoolz/pearl-ui/src/services/referentials.js&discussionId=333215\nexport async function getFullReferentialData(referentialUri) {\n let params = {\n size: 100,\n page: 0\n };\n\n let totalPages = 0;\n let page = 0;\n let content = [];\n let status;\n do {\n let { data, status: recentStatus } = await axios.get(config.BACKEND_BASE_URL + referentialUri, { params });\n totalPages = data.page.totalPages;\n content = content.concat(data.content);\n page = data.page.number + 1;\n params = { size: 100, page };\n status = recentStatus;\n } while (page < totalPages);\n\n return { data: { content }, status };\n}\n","import {\n createReferential,\n updateReferential,\n deleteReferential,\n getReferentialData,\n getFullReferentialData\n} from '@/services/referentials';\n\nexport default {\n namespaced: true,\n state: {\n loading: false,\n responseData: {},\n fullReferentials: {},\n status: '',\n totalElements: 0,\n totalPages: 1\n },\n actions: {\n async getReferentialData(context, params) {\n context.commit('SET_LOADING', true);\n try {\n const responseBody = await getReferentialData(params.url, params.pageNumber, params.pageSize);\n context.commit('SET_RESPONSE_DATA', responseBody.data);\n context.commit('SET_STATUS', responseBody.status);\n context.commit('SET_TOTAL_ELEMENTS', responseBody.data.page.totalElements);\n context.commit('SET_TOTAL_PAGES', responseBody.data.page.totalPages);\n } catch (error) {\n context.commit('SET_STATUS', error.response.status);\n }\n context.commit('SET_LOADING', false);\n },\n\n async createReferential(context, params) {\n try {\n const responseBody = await createReferential(params.referentialUri, params.referentialData);\n context.commit('SET_RESPONSE_DATA', responseBody.data);\n context.commit('SET_STATUS', responseBody.status);\n } catch(error) {\n context.commit('SET_STATUS', error.response.status);\n }\n },\n\n async updateReferential(context, params) {\n try {\n const responseBody = await updateReferential(\n params.referentialUri,\n params.referentialCode,\n params.referentialData\n );\n context.commit('SET_RESPONSE_DATA', responseBody.data);\n context.commit('SET_STATUS', responseBody.status);\n } catch (error) {\n context.commit('SET_STATUS', error.response.status);\n }\n },\n\n async getFullReferentialData(context, params) {\n try {\n context.commit('SET_FULL_RESPONSE_DATA', { content: [] });\n const responseBody = await getFullReferentialData(params.url);\n context.commit('SET_FULL_RESPONSE_DATA', responseBody.data);\n context.commit('SET_STATUS', responseBody.status);\n } catch (error) {\n context.commit('SET_STATUS', error.response.status);\n }\n },\n\n async deleteReferential(context, params) {\n try {\n const responseBody = await deleteReferential(\n params.referentialUri,\n params.referentialCode\n );\n context.commit('SET_STATUS', responseBody.status);\n } catch (error) {\n context.commit('SET_STATUS', error.response.status);\n }\n },\n\n resetResponseDataContent(context) {\n context.commit(\"RESET_RESPONSE_DATA_CONTENT\");\n },\n\n resetFullReferentialResponseDataContent(context) {\n context.commit(\"RESET_FULL_REFERENTIAL_RESPONSE_DATA\");\n }\n },\n\n mutations: {\n SET_RESPONSE_DATA(state, data) {\n state.responseData = data;\n },\n SET_STATUS(state, value) {\n state.status = value;\n },\n SET_TOTAL_ELEMENTS(state, totalElements) {\n state.totalElements = totalElements;\n },\n SET_TOTAL_PAGES(state, totalPages) {\n state.totalPages = totalPages;\n },\n SET_LOADING(state, loading) {\n state.loading = loading;\n },\n RESET_RESPONSE_DATA_CONTENT(state) {\n state.responseData.content = [];\n },\n SET_FULL_RESPONSE_DATA(state, data) {\n state.fullReferentials = data;\n },\n RESET_FULL_REFERENTIAL_RESPONSE_DATA(state) {\n state.fullReferentials = {};\n }\n }\n};\n","import {buildErrorMessage} from './common';\nimport axios from 'axios';\nimport config from '@/utils/config';\n\nasync function list() {\n try {\n // const data = require('./_local.response.release.notes.prd.json');\n const {data} = await axios.get(\n `${config.BACKEND_BASE_URL}/eventhub/list`);\n return data;\n } catch (err) {\n const message = buildErrorMessage(err);\n throw new Error(message);\n }\n}\n\nasync function describeByDivisionWorkerAndEntity(division, worker,\n entity) {\n try {\n let params = \"\";\n if (division) {\n params = division\n if (worker) {\n params = `${params}/${worker}`\n\n if (entity) {\n params = `${params}/${entity}`\n\n }\n }\n }\n const {data} = await axios.get(\n `${config.BACKEND_BASE_URL}/eventhub/describe/${params}`\n );\n return data;\n } catch (error) {\n const message = buildErrorMessage(error);\n throw new Error(message);\n }\n}\n\nexport default {\n list,\n describeByDivisionWorkerAndEntity\n};\n","import eventHubsService from '@/services/event-hubs.js';\n\nexport default {\n namespaced: true,\n state: {\n eventHubsDefinitions: [],\n eventHubs: [],\n errors: [],\n loading: true\n },\n actions: {\n async initEventHubDefinitions(context) {\n try {\n context.commit('SET_LOADING', true);\n context.commit('SET_ERROR', []);\n context.commit('SET_EVENTHUB_DEFINITIONS', []);\n\n const eventHubsDefinitions = await eventHubsService.list();\n context.commit('SET_EVENTHUB_DEFINITIONS', eventHubsDefinitions);\n context.commit('SET_LOADING', false);\n } catch (err) {\n context.commit('SET_ERROR', [err]);\n context.commit('SET_LOADING', false);\n }\n },\n async describeByDivision(context, {division, worker, entity}) {\n try {\n context.commit('SET_LOADING', true);\n context.commit('SET_ERROR', []);\n const eventHubs = await eventHubsService.describeByDivisionWorkerAndEntity(\n division, worker, entity);\n context.commit('SET_EVENTHUBS_LIST', eventHubs);\n context.commit('SET_LOADING', false);\n } catch (err) {\n context.commit('SET_ERROR', [err]);\n context.commit('SET_LOADING', false);\n }\n }\n },\n mutations: {\n SET_EVENTHUBS_LIST(state, eventHubs) {\n state.eventHubs = eventHubs;\n },\n SET_EVENTHUB_DEFINITIONS(state, eventHubsDefinitions) {\n state.eventHubsDefinitions = eventHubsDefinitions;\n },\n SET_LOADING(state, value) {\n state.loading = value;\n },\n SET_ERROR(state, value) {\n state.errors = value;\n }\n }\n};\n","import axios from '@/utils/axios';\nimport config from '@/utils/config';\nasync function getReleasesOnProdData() {\n let data = [],\n response = await axios\n .get(`${config.BACKEND_BASE_URL}/releases?env=PRD`)\n .then(response => response);\n data = response.data.map(release => {\n release['oldReleaseName'] = release.releaseName;\n let nonFormattedDate = release.releaseName.split('-')[3];\n release.releaseName =\n nonFormattedDate?.slice(0, 4) + '-' + nonFormattedDate?.slice(4, 6);\n return release;\n });\n return data;\n}\nfunction getBusinessDatesCount(startDate, endDate) {\n let diffInMinute = 0;\n while (startDate <= endDate) {\n if (startDate.getDay() !== 0 && startDate.getDay() !== 6) {\n ++diffInMinute;\n }\n startDate.setMinutes(startDate.getMinutes() + 1);\n }\n //One day is (24 * 60) minute\n //diffInMinute convert to days\n return diffInMinute / (24 * 60);\n}\nfunction createDivisionReleaseName(releases, filterDate) {\n let divisionReleasesName = {};\n for (let release of releases) {\n if (!(release.releaseName in divisionReleasesName)) {\n let currentDate = new Date(release.releaseName);\n if (filterDate > currentDate) {\n continue;\n }\n divisionReleasesName[release.releaseName] = {\n PRD: {\n releasesName: []\n },\n FSH: {\n releasesName: []\n },\n WFJ: {\n releasesName: []\n },\n '3DIV': {\n releasesName: []\n },\n FBP: {\n releasesName: []\n },\n MEITU: {\n releasesName: []\n }\n };\n }\n let divisions = release.oldReleaseName.split('-')[0];\n divisionReleasesName[release.releaseName][divisions]?.releasesName.push(\n release.oldReleaseName\n );\n }\n return divisionReleasesName;\n}\nfunction removeOneMonth(date) {\n let year = +date.split('-')[0],\n month = +date.split('-')[1];\n --month;\n if (month === 0) {\n month = 12;\n --year;\n }\n return year + '-' + (month < 10 ? '0' + month : month);\n}\nfunction getDate(release) {\n let _date = release.split('-')[3];\n return new Date(\n _date.substr(0, 4) + '-' + _date.substr(4, 2) + '-' + _date.substr(6)\n );\n}\nfunction sortReleases(divisionReleasesName) {\n for (let date in divisionReleasesName) {\n for (let division in divisionReleasesName[date]) {\n divisionReleasesName[date][division].releasesName.sort(\n (releaseA, releaseB) => {\n let dateA = getDate(releaseA),\n dateB = getDate(releaseB);\n if (dateA > dateB) {\n return 1;\n }\n if (dateA < dateB) {\n return -1;\n }\n return 0;\n }\n );\n }\n }\n}\n\nfunction calculateAverageDiffDays(result) {\n for (const division in result) {\n for (const date in result[division]) {\n const tickets = result[division][date];\n const numTickets = Object.keys(tickets).length;\n let sum = 0;\n for (const ticket in tickets) {\n sum += tickets[ticket].diffDays;\n }\n result[division][date].averageDiffDays = sum / numTickets;\n }\n }\n}\nasync function getReleaseNote() {\n let releases = await getReleasesOnProdData(),\n divisionReleasesName = {},\n filterDate = new Date('2023-03');\n divisionReleasesName = createDivisionReleaseName(releases, filterDate);\n let releasesNote = [];\n let result = {};\n sortReleases(divisionReleasesName);\n for (let date of Object.keys(divisionReleasesName).reverse()) {\n for (let division in divisionReleasesName[date]) {\n let newDate = removeOneMonth(date);\n try {\n divisionReleasesName[date][division].releasesName.unshift(\n divisionReleasesName[newDate][division].releasesName[\n divisionReleasesName[newDate][division].releasesName.length - 1\n ]\n );\n } catch (err) {\n console.error(err);\n }\n }\n }\n let endpoints = [];\n for (let date of Object.keys(divisionReleasesName).reverse()) {\n for (let division of Object.keys(divisionReleasesName[date])) {\n let divisionNames = divisionReleasesName[date][division].releasesName;\n for (let i = divisionNames.length - 1; i > 0; --i) {\n endpoints.push(\n `${config.BACKEND_BASE_URL}/releases/note/${divisionNames[i]}/${\n divisionNames[i - 1]\n }?format=json`\n );\n }\n }\n }\n await axios.CancelToken.source().cancel('Previous requests were canceled');\n const requests = endpoints.map(endpoint =>\n axios\n .get(endpoint)\n .then(response => ({ status: 'fulfilled', value: response }))\n .catch(error => ({ status: 'rejected', reason: error }))\n );\n try {\n const responses = await Promise.allSettled(requests);\n for (let response of responses) {\n if (response.value.status === 'rejected') {\n continue;\n }\n releasesNote.push(response.value.value.data);\n }\n } catch (error) {\n console.error(error);\n }\n for (let releaseNote of releasesNote) {\n let date = releaseNote?.releases?.newest?.createdOn\n .toString()\n .split('-')\n .slice(0, 2)\n .join('-'),\n division = releaseNote?.releases?.newest?.name.split('-')[0],\n deploymentDate = releaseNote?.releases?.newest?.deployments?.PRD;\n for (let ticket in releaseNote.changes) {\n for (let ticketInfos of releaseNote.changes[ticket]) {\n let index = ticketInfos.message.indexOf('IT08PEARL'),\n ticketName = ['IT08PEARL-'];\n for (\n let i = index + 'IT08PEARL'.length + 1;\n ticketInfos.message[i] >= '0' && ticketInfos.message[i] <= '9';\n ++i\n ) {\n ticketName.push(ticketInfos.message[i]);\n }\n ticketName = ticketName.join('');\n if (\n !ticketName.startsWith('IT08PEARL') ||\n ticketName[ticketName.length - 1] < '0' ||\n ticketName[ticketName.length - 1] > '9'\n ) {\n continue;\n }\n let mergeDate = ticketInfos.mergeDate;\n if (!(division in result)) {\n result[division] = {};\n }\n if (!(date in result[division])) {\n result[division][date] = {};\n }\n let correctMergeDate = new Date(mergeDate);\n let diffDays = getBusinessDatesCount(\n new Date(\n correctMergeDate.getFullYear(),\n correctMergeDate.getMonth(),\n correctMergeDate.getDate(),\n +mergeDate.split('T')[1].slice(0, 2),\n +mergeDate.split('T')[1].slice(3, 5)\n ),\n new Date(deploymentDate)\n );\n if (ticketName in result[division][date]) {\n if (\n correctMergeDate >\n new Date(result[division][date][ticketName].mergeDate)\n ) {\n result[division][date][ticketName] = {\n releaseA: releaseNote?.releases?.newest?.name,\n releaseB: releaseNote?.releases?.oldest?.name,\n mergeDate: mergeDate,\n deploymentDate: deploymentDate,\n diffDays: diffDays\n };\n }\n } else {\n result[division][date][ticketName] = {\n releaseA: releaseNote?.releases?.newest?.name,\n releaseB: releaseNote?.releases?.oldest?.name,\n mergeDate: mergeDate,\n deploymentDate: deploymentDate,\n diffDays: diffDays\n };\n }\n }\n }\n }\n calculateAverageDiffDays(result);\n return result;\n}\nexport default {\n getReleasesOnProdData,\n getReleaseNote\n};\n","import versionService from '@/services/metrics';\n\nexport default {\n namespaced: true,\n state: {\n releasesOnProdData: null,\n releaseNoteData: null\n },\n actions: {\n async getReleasesOnProdData(context) {\n try {\n let releasesOnProdData = await versionService.getReleasesOnProdData();\n context.commit('SET_RELEASES_ON_PROD', releasesOnProdData);\n } catch (err) {\n context.commit('SET_RELEASES_ON_PROD', {});\n console.error(err);\n }\n },\n async getReleaseNote(context) {\n try {\n let releaseNoteData = await versionService.getReleaseNote();\n context.commit('SET_RELEASE_NOTE', releaseNoteData);\n } catch (err) {\n context.commit('SET_RELEASE_NOTE', {});\n console.error(err);\n }\n }\n },\n mutations: {\n SET_RELEASES_ON_PROD(state, releasesOnProdData) {\n state.releasesOnProdData = releasesOnProdData;\n },\n SET_RELEASE_NOTE(state, releaseNoteData) {\n state.releaseNoteData = releaseNoteData;\n }\n }\n};\n","import { buildErrorMessage } from './common';\nimport axios from 'axios';\nimport config from '@/utils/config';\n\nasync function list() {\n try {\n const { data } = await axios.get(`${config.BACKEND_BASE_URL}/consumers`);\n return data;\n } catch (err) {\n const message = buildErrorMessage(err);\n throw new Error(message);\n }\n}\n\nexport default {\n list\n};\n","import consumersService from '@/services/consumers';\n\nexport default {\n namespaced: true,\n state: {\n consumers: [],\n environments: [],\n statuses: [],\n apis: [],\n errors: [],\n loading: true\n },\n actions: {\n async initConsumers(context) {\n try {\n context.commit('SET_LOADING', true);\n context.commit('SET_ERROR', []);\n context.commit('SET_CONSUMERS', []);\n context.commit('SET_APIS', []);\n\n const consumers = await consumersService.list();\n const apis = new Set(consumers.map(c => c.api));\n const environments = new Set(consumers.map(c => c.environment));\n const statuses = new Set(consumers.map(c => c.status));\n context.commit('SET_APIS', Array.from(apis.values()).sort());\n context.commit('SET_ENVIRONMENTS', Array.from(environments.values()));\n context.commit('SET_STATUSES', Array.from(statuses.values()));\n context.commit('SET_CONSUMERS', consumers);\n context.commit('SET_LOADING', false);\n } catch (err) {\n context.commit('SET_ERROR', [err]);\n context.commit('SET_LOADING', false);\n }\n }\n },\n mutations: {\n SET_CONSUMERS(state, consumers) {\n state.consumers = consumers;\n },\n SET_ENVIRONMENTS(state, environments) {\n state.environments = environments;\n },\n SET_STATUSES(state, statuses) {\n state.statuses = statuses;\n },\n SET_APIS(state, apis) {\n state.apis = apis;\n },\n SET_LOADING(state, value) {\n state.loading = value;\n },\n SET_ERROR(state, value) {\n state.errors = value;\n }\n }\n};\n","import Vue from 'vue';\nimport Vuex from 'vuex';\nimport config from '@/store/modules/config.js';\nimport check from '@/store/modules/check.js';\nimport home from '@/store/modules/home/index.js';\nimport errors from '@/store/modules/errors/index.js';\nimport sonar from '@/store/modules/sonar/index.js';\nimport schemareg from '@/store/modules/schemareg/index.js';\nimport authentication from '@/store/modules/authentication/index.js';\nimport releases from '@/store/modules/releases/index.js';\nimport storage from '@/store/modules/storage/index.js';\nimport proxyApi from '@/store/modules/proxyApi/index.js';\nimport atlasadmin from '@/store/modules/atlasAdmin/index.js';\nimport releasesNotes from '@/store/modules/releasesNotes/index.js';\nimport referentials from '@/store/modules/referentials/index.js';\nimport eventHubs from '@/store/modules/eventHubs/index.js';\nimport metrics from '@/store/modules/metrics/index.js';\nimport consumers from '@/store/modules/consumers/index.js';\n\nVue.use(Vuex);\n\nexport default new Vuex.Store({\n modules: {\n config,\n check,\n home,\n errors,\n sonar,\n schemareg,\n releases,\n authentication,\n storage,\n proxyApi,\n atlasadmin,\n releasesNotes,\n referentials,\n eventHubs,\n metrics,\n consumers\n },\n\n state: {},\n mutations: {},\n actions: {}\n});\n","import axios from '@/utils/axios';\nimport { buildErrorMessage } from './common';\nimport config from '@/utils/config';\n\nasync function getIps() {\n try {\n const { data } = await axios.get(\n `${config.BACKEND_BASE_URL}/atlas/admin/ip`\n );\n return data;\n } catch (err) {\n const message = buildErrorMessage(err);\n throw new Error(message);\n }\n}\n\nasync function addIp(ip) {\n try {\n const { data } = await axios.post(\n `${config.BACKEND_BASE_URL}/atlas/admin/ip`,\n {\n ...ip\n }\n );\n return data;\n } catch (err) {\n const message = buildErrorMessage(err);\n throw new Error(message);\n }\n}\n\nasync function deleteIp(ip) {\n try {\n console.group('Service deleteIP');\n console.log(ip);\n console.groupEnd();\n const { data } = await axios.delete(\n `${config.BACKEND_BASE_URL}/atlas/admin/ip/${ip.ipAddress}`\n );\n return data;\n } catch (err) {\n const message = buildErrorMessage(err);\n throw new Error(message);\n }\n}\n\nasync function getAccessibleClusters() {\n try {\n const { data } = await axios.get(\n `${config.BACKEND_BASE_URL}/atlas/admin/support/clusters`\n );\n return data;\n } catch (err) {\n const message = buildErrorMessage(err);\n throw new Error(message);\n }\n}\n\nasync function addSupportPrivileges(values){\n try {\n const { data } = await axios.post(\n `${config.BACKEND_BASE_URL}/atlas/admin/support/privileges`, {...values}\n );\n return data;\n } catch (err) {\n const message = buildErrorMessage(err);\n throw new Error(message);\n }\n}\n\nasync function getSupportAccessPrivileges(){\n try {\n const { data } = await axios.get(\n `${config.BACKEND_BASE_URL}/atlas/admin/support/privileges`\n );\n return data;\n } catch (err) {\n const message = buildErrorMessage(err);\n throw new Error(message);\n }\n}\n\nasync function deleteSupportAccessPrivileges(username){\n try {\n const { data } = await axios.delete(\n `${config.BACKEND_BASE_URL}/atlas/admin/support/privileges/${username}`\n );\n return data;\n } catch (err) {\n const message = buildErrorMessage(err);\n throw new Error(message);\n }\n}\n\nasync function getRequestClientIP() {\n try {\n const { data } = await axios.get(\n `${config.BACKEND_BASE_URL}/atlas/admin/requestClientIP`\n );\n return data.toString();\n } catch (err) {\n const message = buildErrorMessage(err);\n throw new Error(message);\n }\n}\n\nexport default {\n addIp,\n deleteIp,\n getIps,\n getAccessibleClusters,\n addSupportPrivileges,\n getSupportAccessPrivileges,\n deleteSupportAccessPrivileges,\n getRequestClientIP\n};\n","import config from '@/utils/config'\nimport jwtDecode from 'jwt-decode'\nimport {UserManager, WebStorageStateStore} from 'oidc-client'\n\nlet userManager\n\n/**\n * Class to encapsulate all authentication related logic.\n */\nclass AuthService {\n /**\n * Initate the login process.\n */\n login() {\n userManager.signinRedirect().catch(error => console.log(error))\n }\n\n logout() {\n userManager\n .signoutRedirect()\n .then(() => console.log('User logged out'))\n .catch(error => console.log(error))\n }\n\n /**\n * Handles the redirect from the OAuth server after a user logged in.\n */\n handleLoginRedirect() {\n // Returns a promise\n return userManager.signinRedirectCallback()\n }\n\n /**\n * Handles the redirect from the OAuth server after a user logged out.\n */\n handleLogoutRedirect() {\n return userManager.signoutRedirectCallback()\n }\n\n /**\n * Checks whether or not a user is currently logged in.\n *\n * Returns a promise which will be resolved to true/false or be rejected with an error.\n */\n isUserLoggedIn() {\n return new Promise((resolve, reject) => {\n userManager\n .getUser()\n .then(user => {\n if (user === null) {\n resolve(false)\n }\n resolve(true)\n })\n .catch(error => reject(error))\n })\n }\n\n /**\n * Get the profile data for the currently authenticated user.\n *\n * Returns an empty object if no user is logged in.\n */\n getProfile() {\n return new Promise((resolve, reject) => {\n userManager\n .getUser()\n .then(user => {\n if (user === null) {\n resolve(null)\n }\n const decoded = jwtDecode(user.access_token)\n resolve(decoded)\n })\n .catch(error => reject(error))\n })\n }\n\n /**\n * Get the access token.\n *\n * Can be used to make requests to the backend.\n */\n getAccessToken() {\n return new Promise((resolve, reject) => {\n // console.log('Get access token from user')\n userManager\n .getUser()\n .then(user => {\n // console.log('Got access token from user')\n resolve(user.access_token)\n })\n .catch(error => reject(error))\n })\n }\n\n silentRenew() {\n return userManager.signinSilent()\n }\n}\n\n/**\n * Create and expose an instance of the auth service.\n */\nlet authService\n\n/**\n * Default export to register the authentication service in the global Vue instance.\n *\n * This allows us to reference it using \"this.$auth\" whenever we are inside of a Vue context.\n */\nexport default {\n get authService() {\n if (!authService) {\n authService = new AuthService()\n }\n return authService\n },\n initAuthentication() {\n const settings = {\n // Where the tokens will be stored\n userStore: new WebStorageStateStore({\n store: window.sessionStorage\n }),\n // URL to the authentication server (including realm)\n authority: 'https://cid.clasp-infra.com/adfs',\n metadata: {\n issuer: 'https://cid.clasp-infra.com/adfs',\n authorization_endpoint:\n 'https://cid.clasp-infra.com/adfs/oauth2/authorize',\n token_endpoint: 'https://cid.clasp-infra.com/adfs/oauth2/token/',\n jwks_uri: 'https://cid.clasp-infra.com/adfs/discovery/keys',\n end_session_endpoint: 'https://cid.clasp-infra.com/adfs/oauth2/logout',\n userinfo_endpoint: 'https://cid.clasp-infra.com/adfs/userinfo'\n },\n extraQueryParams: {\n resource: `${config.PEARL_PLT_FBP_DTZ_AUDIENCE_RESOURCE}`\n },\n // 'https://cid.clasp-infra.com/adfs/oauth2/authorize?resource={{FBP_DTZ_IM_RESOURCE}}',\n // The name of the client in Keycloak setup for this service\n client_id: config.PEARL_PLT_FBP_DTZ_UI_CLIENT_ID,\n // Where to redirect the user to after successful authentication\n redirect_uri: `${config.PEARL_PLT_FBP_DTZ_UI_PUBLIC_URL}/callback-login`,\n // Where to redirect the user to after logging the user out\n post_logout_redirect_uri: `${config.PEARL_PLT_FBP_DTZ_UI_PUBLIC_URL}/callback-logout`,\n // Indicate the the authorization code flow should be used\n // response_type: 'id_token',\n response_type: 'id_token token',\n //\n // \"openid\" tells the server that this client uses oidc for authentication\n scope: 'openid',\n // Flag to load profile\n loadUserInfo: false,\n // Enable automatic (silent) renewal of the access token\n automaticSilentRenew: true,\n automaticSilentSignin: false,\n silent_redirect_uri: `${config.PEARL_PLT_FBP_DTZ_UI_PUBLIC_URL}/silent-refresh.html`,\n signingKeys: [\n {\n kty: 'RSA',\n use: 'sig',\n alg: 'RS256',\n kid: 'nfUt8aWPhgVDYz8cy82sAt27BDU',\n x5t: 'nfUt8aWPhgVDYz8cy82sAt27BDU',\n n:\n 'ldxvtQI_kuc1-xKxy76xVW47kPNY8AYXxJTGgMr9EIL0Y6WnS5Sp5QV36KjU3o9YAvVtKF8cGKmdkIQ-hMJMfoMFv7lXA_oqfIA5Vs2sm10ks-fzL_uQqZJmrieBUaYnHRWsT3WfuUiDzbriicUy_zbNNcvfVDm_WFl_AsoFCl1U6AsTkQ3BuI9-mJD-RvJaVhk07cT9N_VwC-cX02ZG64HKwLLYP8fJARLrBUr_03COg7THnh7sxfGYSQVLN5XnN7UUrxA-up0ZkzWlkLZNB_H3GkwowD7Q9B-ez27GnxAtr468aHMivNr6F7os1ZYInaC7UnnbikxxpXBpIrpTdQ',\n e: 'AQAB',\n x5c: [\n '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'\n ]\n }\n ]\n }\n\n userManager = new UserManager(settings)\n\n /**\n * Event fired once a user logged in successfully or after an access token was refreshed successfully.\n */\n userManager.events.addUserLoaded(() => {\n console.warn('EVENT addUserLoaded')\n })\n\n /**\n * Event fired once a user logged out or the user was logged out since the access token could not be refreshed.\n */\n userManager.events.addUserSignedOut(() => {\n console.warn('EVENT fireUserLoggedOutEvent')\n })\n\n userManager.events.addAccessTokenExpiring(() => {\n console.log('Access Token is About to expire, starting silent Renew')\n // Not sure we need it ...\n userManager.startSilentRenew()\n })\n\n userManager.events.addAccessTokenExpired(() => {\n console.error('Access Token has expired')\n userManager.signinRedirect()\n })\n\n userManager.events.addSilentRenewError(error => {\n console.log('Seilent Renew Error')\n console.log(error)\n })\n }\n}\n","export const workersConfig = {\n schemas: {\n FBP: {\n \"products\": \"products\",\n \"assets\": \"assets\",\n \"prices\": \"prices\",\n \"referentials\": \"referentials\",\n \"skus\": \"skus\",\n },\n FSH: {\n \"assets\": \"assets\",\n \"prices\": \"prices\",\n \"geoassets\": \"pim\",\n \"boards\": \"pim\",\n \"bundlethemes\": \"pim\",\n \"categories\": \"pim\",\n \"items\": \"pim\",\n \"looks\": \"pim\",\n \"products\": \"pim\",\n \"referentials\": \"pim\",\n \"skus\": \"pim\",\n \"styles\": \"pim\"\n },\n WFJ: {\n \"products\": \"products\",\n \"assets\": \"assets\",\n \"prices\": \"prices\",\n \"referentials\": \"referentials\",\n \"skus\": \"skus\",\n },\n },\n metadata: {\n ERR: {\n trigram: \"err\",\n sourcePath: \"extended/store-errors\",\n hasHealthInfo: false\n },\n SRA: {\n trigram: \"sra\",\n hasHealthInfo: false,\n sourcePath: \"extended/schema-registry\"\n },\n ASC: {\n trigram: \"asc\",\n hasHealthInfo: false,\n sourcePath: \"services/service-catalog\"\n },\n WDF: {\n trigram: \"wdf\",\n hasHealthInfo: true,\n entities: {\n FBP: ['products', 'skus', 'assets', 'referentials', 'prices'],\n FSH: ['prices', 'assets', 'pim', 'rankings']\n },\n sourcePath: \"extended/diff\"\n },\n WBR: {\n trigram: \"wbr\",\n hasHealthInfo: true,\n entities: {\n FBP: ['products', 'skus', 'assets', 'referentials', 'prices'],\n FSH: ['prices', 'assets', 'pim']\n },\n sourcePath: \"extended/business\"\n },\n APL: {\n trigram: \"apl\",\n hasHealthInfo: true,\n sourcePath: \"services/api-pearl\"\n },\n AFH: {\n trigram: \"afh\",\n hasHealthInfo: true,\n sourcePath: \"services/api\"\n },\n WMA: {\n trigram: \"wma\",\n hasHealthInfo: true,\n entities: {\n FBP: ['products', 'skus', 'assets', 'referentials', 'prices'],\n FSH: []\n },\n sourcePath: \"services/update-mongo\"\n },\n WSC: {\n trigram: \"wsc\",\n hasHealthInfo: true,\n entities: {\n FBP: ['products', 'skus', 'assets', 'referentials', 'prices'], \n FSH: []\n },\n sourcePath: \"services/update-service-catalog\"\n },\n WCS: {\n trigram: \"wcs\",\n hasHealthInfo: true,\n sourcePath: \"extended/capture\"\n },\n WCR: {\n trigram: \"wcr\",\n hasHealthInfo: true,\n sourcePath: \"extended/capture\"\n },\n WCP: {\n trigram: \"wcp\",\n hasHealthInfo: true,\n sourcePath: \"extended/capture\"\n },\n WCA: {\n trigram: \"wca\",\n hasHealthInfo: true,\n sourcePath: \"extended/capture\"\n },\n WCX: {\n hasHealthInfo: false,\n trigram: \"wcx\",\n sourcePath: \"extended/capture\"\n },\n DTZ: {\n trigram: \"dtz\",\n hasHealthInfo: true,\n sourcePath: \"tools/devtoolz\"\n }\n }\n}\n","function queryFromParams(params) {\n const filterData = Object.entries(params)\n .filter(kv => kv[0] != 'entity' && kv[0] != 'keys')\n .map(kv => ['receivedMessage.payload.' + kv[0], kv[1]])\n .map(kv => {\n const keyFilter = new Object()\n keyFilter[kv[0]] = kv[1]\n return keyFilter\n })\n const eventHubFilter = {\n 'occuredOn.eventHub.name': {\n $regex: params['entity']\n }\n }\n return { $and: [...filterData, eventHubFilter] }\n}\n\nexport default {\n queryFromParams\n}\n","function inIdsOrder({ ids, documents }) {\n const docById = new Map(documents.map(doc => [doc._id, doc]))\n return ids.map(id => docById.get(id)).filter(e => e)\n}\n\nexport default {\n inIdsOrder\n}\n","import axios from '@/utils/axios'\nimport common from './common'\nimport errorsQuery from './errorsQuery'\nimport orderDocuments from './orderDocuments'\nimport config from '@/utils/config'\n\nasync function getDocument(params) {\n try {\n const postData = errorsQuery.queryFromParams(params)\n const {data} = await axios.post(\n `${config.BACKEND_BASE_URL}${config.PATH_API_ERROR_QUERY}`,\n postData\n )\n\n if (data?.content?.length && data.content.length > 0) {\n return data\n }\n\n throw new Error('Not Found')\n } catch (err) {\n const message = common.buildErrorMessage(err, params)\n throw new Error(message)\n }\n}\n\nasync function getErrorsByFilter(query, pageSize, pageNumber) {\n try {\n const {data} = await axios.post(\n `${config.BACKEND_BASE_URL}${config.PATH_API_ERROR_ADVANCED_QUERY}`,\n {\n query: query,\n options: {\n sort: {storedTimestamp: -1},\n projection: {},\n limit: pageSize,\n skip: (pageNumber - 1) * pageSize\n }\n }\n )\n return data\n } catch (err) {\n const message = common.buildErrorMessage(err, {})\n console.log(err)\n throw new Error(message)\n }\n}\n\nasync function getStats(query, type) {\n try {\n const {data} = await axios.post(\n `${config.BACKEND_BASE_URL}${config.PATH_API_ERROR_ADVANCED_QUERY_STATS}&stat=${type}`,\n {\n query: query,\n }\n )\n return data\n } catch (err) {\n const message = common.buildErrorMessage(err, {})\n console.log(err)\n throw new Error(message)\n }\n}\n\nasync function getTags() {\n try {\n const {data} = await axios.get(\n `${config.BACKEND_BASE_URL}${config.PATH_API_ERROR_TAGS_LIST}`)\n return data.map(tag => tag._id)\n } catch (err) {\n const message = common.buildErrorMessage(err, {})\n console.log(err)\n throw new Error(message)\n }\n}\n\nasync function getByIds(ids) {\n try {\n const {\n data\n } = await axios.post(\n `${config.BACKEND_BASE_URL}${config.PATH_API_ERROR_QUERY_BY_IDS}`,\n {ids}\n )\n return orderDocuments.inIdsOrder({ids, documents: data})\n } catch (err) {\n const message = common.buildErrorMessage(err, {})\n throw new Error(message)\n }\n}\n\nasync function replayError(replay) {\n try {\n const {\n data\n } = await axios.post(\n `${config.BACKEND_BASE_URL}${config.PATH_API_ERROR_REPLAY}?error=${replay.error}&comment=${replay.comment ? replay.comment : ''}&publish=${replay.publish || false}`,\n {}\n )\n return data\n } catch (err) {\n const message = common.buildErrorMessage(err, {})\n throw new Error(message)\n }\n}\n\nasync function tag(id, tag, toAdd) {\n try {\n const {\n data\n } = await axios.post(\n `${config.BACKEND_BASE_URL}${config.PATH_API_ERROR_TAG}?error=${id}&tag=${tag.tag}&comment=${tag.comment ? tag.comment : ''}&add=${toAdd}`,\n {}\n )\n return data\n } catch (err) {\n const message = common.buildErrorMessage(err, {})\n throw new Error(message)\n }\n}\n\nasync function batchTag(query, tag) {\n try {\n const {\n data\n } = await axios.post(\n `${config.BACKEND_BASE_URL}${config.PATH_API_BATCH_ERROR_TAG}?tag=${tag.tag}&comment=${tag.comment ? tag.comment : ''}`\n ,\n {query: query}\n )\n return data\n } catch (err) {\n const message = common.buildErrorMessage(err, {})\n throw new Error(message)\n }\n}\n\nasync function markAs(id, status) {\n try {\n const {\n data\n } = await axios.post(\n `${config.BACKEND_BASE_URL}${config.PATH_API_ERROR_STATUS}?error=${id}${status ? '&status=' + status : ''}`\n ,\n {}\n )\n return data\n } catch (err) {\n const message = common.buildErrorMessage(err, {})\n throw new Error(message)\n }\n}\n\nasync function loadPayload(doc) {\n try {\n const {\n data\n } = await axios.get(\n `${config.BACKEND_BASE_URL}${config.PATH_API_ERROR_PAYLOAD}?error=${doc[\"receivedMessage\"]}`\n )\n return data && data.length > 0 ? data[0] : \"\"\n } catch (err) {\n const message = common.buildErrorMessage(err, {})\n throw new Error(message)\n }\n}\n\nasync function batchMarkAs(query, status) {\n try {\n const {\n data\n } = await axios.post(\n `${config.BACKEND_BASE_URL}${config.PATH_API_BATCH_ERROR_STATUS}?status=${status}`\n ,\n {query: query}\n )\n return data\n } catch (err) {\n const message = common.buildErrorMessage(err, {})\n throw new Error(message)\n }\n}\n\nexport default {\n getDocument,\n getErrorsByFilter,\n getStats,\n getTags,\n getByIds,\n replayError,\n markAs,\n batchMarkAs,\n loadPayload,\n tag,\n batchTag\n}\n","import axios from '@/utils/axios';\nimport { buildErrorMessage } from './common';\nimport config from '@/utils/config';\n\nasync function getADOReleases(params) {\n try {\n const { data } = await axios.get(\n `${config.BACKEND_BASE_URL}/ado/releases`,\n params\n );\n return data;\n } catch (err) {\n const message = buildErrorMessage(err, params);\n throw new Error(message);\n }\n}\n\nasync function getWorkerInfos(params) {\n const opts = { ...params };\n try {\n const { data } = await axios.post(`${config.BACKEND_BASE_URL}/workerapis`, {\n header: {\n componentTrigram: params.trigram,\n env: params.env.toLowerCase(),\n division: params.division,\n entities: params.entities\n },\n payload: {\n method: 'GET',\n path: '/infos'\n }\n });\n\n return data.responses;\n } catch (err) {\n const down = { error: err };\n if (err?.response?.data) down.error = err?.response?.data;\n if (opts.entity) down.app = { entity: opts.entity };\n return [down];\n }\n}\n\nasync function getWorkerHealth(params) {\n const opts = { ...params };\n try {\n const { data } = await axios.post(`${config.BACKEND_BASE_URL}/workerapis`, {\n header: {\n componentTrigram: params.trigram,\n env: params.env.toLowerCase(),\n division: params.division,\n entities: params.entities\n },\n payload: {\n method: 'GET',\n path: '/health'\n }\n });\n\n return data.responses;\n } catch (err) {\n const down = { status: 'LOADING', error: err };\n if (err?.response?.data) down.error = err?.response?.data;\n if (opts.entity) down.app = { entity: opts.entity };\n return [down];\n }\n}\n\nasync function getCommits(previousCommit, source, path) {\n try {\n const { data } = await axios.get(\n `${config.BACKEND_BASE_URL}/ado/commits?${\n previousCommit ? 'compareToCommit=' + previousCommit + '&' : ''\n }sourceCommit=${source.commit}&sourceRepo=${source.repo}&path=${path}`,\n {}\n );\n return data;\n } catch (err) {\n const message = buildErrorMessage(err, {});\n throw new Error(message);\n }\n}\nexport default {\n getADOReleases,\n getWorkerInfos,\n getWorkerHealth,\n getCommits\n};\n","/**\n * Use this module to \"intercept\" and configure requests or responses for all Axios Requests\n */\nimport config from '@/utils/config'\nimport axios from 'axios'\nimport store from '@/store/'\n// import CONFIG from '@/utils/config'\n/** We do not need to authenticate requests for those url */\n// const trustedURL = ['config.json']\n\naxios.interceptors.request.use(\n function(axiosConfig) {\n axiosConfig = {\n ...axiosConfig,\n headers: {\n ...axiosConfig.headers,\n 'X-PEARL-DIVISION': store.state.config.currentDivision,\n 'Ocp-Apim-Subscription-Key':\n config.PEARL_PLT_FBP_DTZ_UI_SUBSCRIPTION_KEY\n }\n }\n // Do something before request is sent\n return axiosConfig\n },\n function(error) {\n return Promise.reject(error)\n }\n)\n\n// // Add a response interceptor\n// axios.interceptors.response.use(\n// function(response) {\n// // Any status code that lie within the range of 2xx cause this function to trigger\n// // Do something with response data\n// debug('Response Interceptor')\n// return response\n// },\n// function(error) {\n// // Any status codes that falls outside the range of 2xx cause this function to trigger\n// // Do something with response error\n// debug('Response Interceptor not 2XX')\n// return Promise.reject(error)\n// }\n// )\nexport default axios\n","export const HTTP_STATE = {\n LOADING: 'LOADING',\n ERROR: 'ERROR',\n OK: 'OK'\n};\nexport function buildErrorMessage(err, params) {\n const stringOfParams = JSON.stringify(params, null, ' ');\n let message = `${err.message}`;\n if (err.response) {\n if (err.response.status === 404) {\n message = `404 - Element not found`;\n } else if (err.response.status === 401) {\n message = `401 - Not Authorized`;\n } else if (err.response.status === 400) {\n message = `Validation Error`;\n if (err.response.data && Array.isArray(err.response.data.details)) {\n err.response.data.details.forEach(detail => {\n message += ` ${detail.message}`;\n });\n }\n return message;\n } else {\n message = `${err.response.status} - ${err.message}`;\n }\n }\n return `${message}, ${stringOfParams}`;\n}\n\nexport function mapEntityToMongo(entityName) {\n return entityName;\n}\n\nexport function mapEntityToCosmos(entityName) {\n return entityName;\n}\n\nexport default {\n buildErrorMessage\n};\n"],"sourceRoot":""}