profile.js 1.29 KB
Newer Older
ddcat1115's avatar
ddcat1115 committed
1
import { queryBasicProfile, queryAdvancedProfile } from '../services/api';
2 3 4 5 6

export default {
  namespace: 'profile',

  state: {
ddcat1115's avatar
ddcat1115 committed
7 8 9 10 11 12
    basicGoods: [],
    basicLoading: true,
    advancedOperation1: [],
    advancedOperation2: [],
    advancedOperation3: [],
    advancedLoading: true,
13 14 15
  },

  effects: {
ddcat1115's avatar
ddcat1115 committed
16
    *fetchBasic({ payload }, { call, put }) {
17 18
      yield put({
        type: 'changeLoading',
ddcat1115's avatar
ddcat1115 committed
19
        payload: { basicLoading: true },
20
      });
ddcat1115's avatar
ddcat1115 committed
21
      const response = yield call(queryBasicProfile);
22 23 24 25 26 27
      yield put({
        type: 'show',
        payload: response,
      });
      yield put({
        type: 'changeLoading',
ddcat1115's avatar
ddcat1115 committed
28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
        payload: { basicLoading: false },
      });
    },
    *fetchAdvanced({ payload }, { call, put }) {
      yield put({
        type: 'changeLoading',
        payload: { advancedLoading: true },
      });
      const response = yield call(queryAdvancedProfile);
      yield put({
        type: 'show',
        payload: response,
      });
      yield put({
        type: 'changeLoading',
        payload: { advancedLoading: false },
44 45 46 47 48 49 50 51 52 53 54 55 56 57
      });
    },
  },

  reducers: {
    show(state, { payload }) {
      return {
        ...state,
        ...payload,
      };
    },
    changeLoading(state, { payload }) {
      return {
        ...state,
ddcat1115's avatar
ddcat1115 committed
58
        ...payload,
59 60 61 62
      };
    },
  },
};