|
|
|
import Vue from 'vue'
|
|
|
|
|
|
|
|
export const state = () => ({
|
|
|
|
projectApiFilePaths: {},
|
|
|
|
activeEnvironment: {},
|
|
|
|
currentProjectKey: ''
|
|
|
|
|
|
|
|
})
|
|
|
|
|
|
|
|
export const mutations = {
|
|
|
|
|
|
|
|
MutApiFilePathsAdd(state, args) {
|
|
|
|
state.projectApiFilePaths = {
|
|
|
|
...state.projectApiFilePaths,
|
|
|
|
[state.currentProjectKey]: [...state.projectApiFilePaths[state.currentProjectKey], args]
|
|
|
|
}
|
|
|
|
},
|
|
|
|
|
|
|
|
MutApiFilePathsRemove(state, index) {
|
|
|
|
state.projectApiFilePaths[state.currentProjectKey].splice(index, 1)
|
|
|
|
state.projectApiFilePaths[state.currentProjectKey] = [...state.projectApiFilePaths[state.currentProjectKey]]
|
|
|
|
},
|
|
|
|
|
|
|
|
MutListAdd(state, args) {
|
|
|
|
state.list.unshift(args)
|
|
|
|
if (state.list.length > 500) { state.list.pop() }
|
|
|
|
},
|
|
|
|
|
|
|
|
MutListRemove(state, index) {
|
|
|
|
// find index and set status
|
|
|
|
state.list.splice(index, 1)
|
|
|
|
// state.list = [...state.list]
|
|
|
|
},
|
|
|
|
MutList(state, list) {
|
|
|
|
state.projectApiFilePaths[state.currentProjectKey] = list
|
|
|
|
},
|
|
|
|
MutCurrentProjectKey(state, currentProjectKey) {
|
|
|
|
state.currentProjectKey = currentProjectKey
|
|
|
|
},
|
|
|
|
MutActiveEnvironment(state, { env }) {
|
|
|
|
Vue.set(state.activeEnvironment, state.currentProjectKey, env)
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
export const getters = {
|
|
|
|
GtrCurrentApiFilePaths(state) {
|
|
|
|
return state.projectApiFilePaths[state.currentProjectKey]
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
export const actions = {
|
|
|
|
|
|
|
|
async send({ commit, state, rootGetters }, { apiDecoded, api }) {
|
|
|
|
const apiMeta = { ...apiDecoded }
|
|
|
|
// let t, t1, t2
|
|
|
|
|
|
|
|
// return (await rootGetters['sqlMgr/sqlMgr'].sqlOp(null, 'handleApiCall', apiMeta));
|
|
|
|
|
|
|
|
return (await this.dispatch('sqlMgr/ActSqlOp', [null, 'handleApiCall', apiMeta]))
|
|
|
|
//
|
|
|
|
// try {
|
|
|
|
// commit('notification/MutToggleProgressBar', true, {root: true});
|
|
|
|
// const req = XcApiHelp.axiosRequestMake(apiMeta);
|
|
|
|
// console.log(req);
|
|
|
|
//
|
|
|
|
//
|
|
|
|
// if (Object.values(apiMeta.perf).every(v => !v)) {
|
|
|
|
//
|
|
|
|
// // t = process.hrtime();
|
|
|
|
// let data = await axios(req);
|
|
|
|
//
|
|
|
|
// // t1 = process.hrtime(t);
|
|
|
|
// // t2 = (t1[0] + t1[1] / 1000000000).toFixed(2);
|
|
|
|
//
|
|
|
|
// apiMeta.response.status = data.status;
|
|
|
|
// apiMeta.response.headers = data.headers;
|
|
|
|
// apiMeta.response.data = data.data;
|
|
|
|
// console.log(data);
|
|
|
|
// } else {
|
|
|
|
// this.$toast.info('Starting performance test').goAway(3000);
|
|
|
|
// try {
|
|
|
|
// const res = await autocannon({
|
|
|
|
// ...req,`
|
|
|
|
// ...apiMeta.perf,
|
|
|
|
// body: req.data
|
|
|
|
// });
|
|
|
|
// console.log('perf result', res)
|
|
|
|
//
|
|
|
|
// apiMeta.response.status = 200;
|
|
|
|
// apiMeta.response.headers = [];
|
|
|
|
// apiMeta.response.data = res;
|
|
|
|
//
|
|
|
|
// this.$toast.info('Finished performance test').goAway(3000);
|
|
|
|
//
|
|
|
|
// } catch (e) {
|
|
|
|
// console.log(e)
|
|
|
|
// apiMeta.response.status = 400;
|
|
|
|
// apiMeta.response.data = e;
|
|
|
|
// }
|
|
|
|
//
|
|
|
|
// }
|
|
|
|
// } catch (e) {
|
|
|
|
// // t1 = process.hrtime(t);
|
|
|
|
// // t2 = (t1[0] + t1[1] / 1000000000).toFixed(2);
|
|
|
|
//
|
|
|
|
// console.log(e, Object.keys(e), Object.entries(e));
|
|
|
|
// apiMeta.response = e.response;
|
|
|
|
// if (apiMeta.response)
|
|
|
|
// delete apiMeta.response.request
|
|
|
|
// //throw e;
|
|
|
|
// } finally {
|
|
|
|
// commit('notification/MutToggleProgressBar', false, {root: true});
|
|
|
|
// }
|
|
|
|
// return {
|
|
|
|
// ...apiMeta,
|
|
|
|
// body: JSON.stringify(apiMeta.body, 0, 2),
|
|
|
|
// response: {
|
|
|
|
// ...apiMeta.response,
|
|
|
|
// timeTaken: t2,
|
|
|
|
// createdAt: Date.now()
|
|
|
|
// }
|
|
|
|
// };
|
|
|
|
},
|
|
|
|
|
|
|
|
async loadApiCollectionForProject({ commit, state }, { projectName = '__default', projectId = '__id' }) {
|
|
|
|
const key = projectName + '__' + projectId
|
|
|
|
commit('MutCurrentProjectKey', key)
|
|
|
|
if (!(key in state.projectApiFilePaths)) {
|
|
|
|
commit('MutList', [])
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @copyright Copyright (c) 2021, Xgene Cloud Ltd
|
|
|
|
*
|
|
|
|
* @author Naveen MR <oof1lab@gmail.com>
|
|
|
|
* @author Pranav C Balan <pranavxc@gmail.com>
|
|
|
|
*
|
|
|
|
* @license GNU AGPL version 3 or any later version
|
|
|
|
*
|
|
|
|
* This program is free software: you can redistribute it and/or modify
|
|
|
|
* it under the terms of the GNU Affero General Public License as
|
|
|
|
* published by the Free Software Foundation, either version 3 of the
|
|
|
|
* License, or (at your option) any later version.
|
|
|
|
*
|
|
|
|
* This program is distributed in the hope that it will be useful,
|
|
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
* GNU Affero General Public License for more details.
|
|
|
|
*
|
|
|
|
* You should have received a copy of the GNU Affero General Public License
|
|
|
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
|
|
*
|
|
|
|
*/
|