packages/build-tools/console-toolkit-plugin-xconsole/generators/xconsole/mocks.js (57 lines of code) (raw):

const axios = require('axios') const URL = 'http://mocks.alibaba-inc.com' const CREATION_URL = `${URL}/api/createProductFromWind` const AUTH_URL = `${URL}/validateCreateToken` const REPO_URL = `${URL}/mock/` const PROJECT_URL = `${URL}/project/` const getUrl = () => URL const getRepoUrl = (name) => `${REPO_URL}${name}` const getAuthUrl = (token) => `${AUTH_URL}${token}` const getProjectUrl = (name) => `${PROJECT_URL}${name}` const TIMEOUT = 20 * 1000 const createParamsGetter = (url, creator) => (...args) => Object.assign({ method: "get", url, json: true, timeout: TIMEOUT, }, creator(...args)) const getCreationRequestParams = createParamsGetter( CREATION_URL, (product, empid) => ({ url: `${CREATION_URL}/${product}/${empid}` }) ) const getAuthRequestParams = createParamsGetter( AUTH_URL, (product, ticket) => ({ product, ticket }) ) const createRequest = (paramsGetter) => async (...args) => { const { data: result } = await axios(paramsGetter(...args)) const { success, data, errMsg, code, } = result; if (!success) { return { error: { code, message: errMsg, }, } } return { data, } } const create = createRequest(getCreationRequestParams) const auth = createRequest(getAuthRequestParams) module.exports = { create, auth, getUrl, getRepoUrl, getAuthUrl, getProjectUrl, }