yapi/client/reducer/modules/addInterface.js

174 lines
3.8 KiB
JavaScript

// Actions
const FETCH_ADD_INTERFACE_INPUT = 'yapi/addInterface/FETCH_ADD_INTERFACE_INPUT';
const FETCH_ADD_INTERFACE_TAG_VALUE = 'yapi/addInterface/FETCH_ADD_INTERFACE_TAG_VALUE';
const FETCH_ADD_INTERFACE_HEADER_VALUE = 'yapi/addInterface/FETCH_ADD_INTERFACE_HEADER_VALUE';
const ADD_INTERFACE_SEQ_HEADER = 'yapi/addInterface/ADD_INTERFACE_SEQ_HEADER';
const DELETE_INTERFACE_SEQ_HEADER = 'yapi/addInterface/DELETE_INTERFACE_SEQ_HEADER';
const GET_INTERFACE_REQ_PARAMS = 'yapi/addInterface/GET_INTERFACE_REQ_PARAMS';
const GET_INTERFACE_RES_PARAMS = 'yapi/addInterface/GET_INTERFACE_RES_PARAMS';
const PUSH_INTERFACE_NAME = 'yapi/addInterface/PUSH_INTERFACE_NAME';
const PUSH_INTERFACE_METHOD = 'yapi/addInterface/PUSH_INTERFACE_METHOD';
const FETCH_INTERFACE_PROJECT = 'yapi/addInterface/FETCH_INTERFACE_PROJECT';
const ADD_INTERFACE_CLIPBOARD = 'yapi/addInterface/ADD_INTERFACE_CLIPBOARD';
// Reducer
const initialState = {
interfaceName: '',
url: '',
method: 'GET',
// 默认请求头部有一条数据
seqGroup: [
{
id: 0,
name: '',
value: ''
}
],
reqParams: '',
resParams: '',
project: {},
clipboard: () => {}
}
export default (state = initialState, action) => {
switch (action.type) {
case FETCH_ADD_INTERFACE_INPUT:
return {
...state,
url: action.payload
}
case FETCH_ADD_INTERFACE_TAG_VALUE:
return {
...state,
tagValue: action.payload
}
case FETCH_ADD_INTERFACE_HEADER_VALUE:
return {
...state,
headerValue: action.payload
}
case ADD_INTERFACE_SEQ_HEADER:
return {
...state,
seqGroup: action.payload
}
case DELETE_INTERFACE_SEQ_HEADER:
return {
...state,
seqGroup: action.payload
}
case GET_INTERFACE_REQ_PARAMS:
return {
...state,
reqParams: action.payload
}
case GET_INTERFACE_RES_PARAMS:
return {
...state,
resParams: action.payload
}
case PUSH_INTERFACE_NAME:
return {
...state,
interfaceName: action.payload
}
case PUSH_INTERFACE_METHOD:
return {
...state,
method: action.payload
}
case FETCH_INTERFACE_PROJECT:
return {
...state,
project: action.payload.data.data
}
case ADD_INTERFACE_CLIPBOARD:
return {
...state,
clipboard: action.payload
}
default:
return state
}
}
// Action Creators
import axios from 'axios'
export function pushInputValue (value) {
return {
type: FETCH_ADD_INTERFACE_INPUT,
payload: value
};
}
export function reqTagValue (value) {
return {
type: FETCH_ADD_INTERFACE_TAG_VALUE,
payload: value
};
}
export function reqHeaderValue (value) {
return {
type: FETCH_ADD_INTERFACE_HEADER_VALUE,
payload: value
};
}
export function addReqHeader (value) {
return {
type: ADD_INTERFACE_SEQ_HEADER,
payload: value
};
}
export function deleteReqHeader (value) {
return {
type: DELETE_INTERFACE_SEQ_HEADER,
payload: value
};
}
export function getReqParams (value) {
return {
type: GET_INTERFACE_REQ_PARAMS,
payload: value
};
}
export function getResParams (value) {
return {
type: GET_INTERFACE_RES_PARAMS,
payload: value
};
}
export function pushInterfaceName (value) {
return {
type: PUSH_INTERFACE_NAME,
payload: value
}
}
export function pushInterfaceMethod (value) {
return {
type: PUSH_INTERFACE_METHOD,
payload: value
}
}
export function fetchInterfaceProject(id) {
return {
type: FETCH_INTERFACE_PROJECT,
payload: axios.get('/api/project/get', { params: {id}})
}
}
export function addInterfaceClipboard (func) {
return {
type: ADD_INTERFACE_CLIPBOARD,
payload: func
}
}