onnet-portal
Version:
Ant Design Pro based test2
70 lines (63 loc) • 1.52 kB
text/typescript
import { Effect, Reducer, getDvaApp } from 'umi';
import { EffectsCommandMap } from 'dva';
import { getUser } from '../services/kazoo';
export interface KazooUserModelType {
namespace: 'kz_user';
state: {};
effects: {
refresh: Effect;
flush: Effect;
};
reducers: {
update: Reducer<{}>;
};
}
const KazooUserModel: KazooUserModelType = {
namespace: 'kz_user',
state: {},
effects: {
*refresh({ payload }, { call, put }) {
if (payload.owner_id === 'no_user_defined') {
yield put({
type: 'update',
payload: {
data: {
id: 'no_user_defined',
first_name: 'Faceless',
last_name: '',
username: 'User',
priv_level: 'user',
},
},
});
getDvaApp()._store.dispatch({ type: 'authority/refresh', payload: {} });
return;
}
const response = yield call(getUser, payload);
if (response.status === 'success') {
yield put({
type: 'update',
payload: response,
});
} else {
yield put({
type: 'update',
payload: {},
});
}
getDvaApp()._store.dispatch({ type: 'authority/refresh', payload: {} });
},
*flush(_, { put }) {
yield put({
type: 'update',
payload: {},
});
},
},
reducers: {
update(state, { payload }) {
return { ...payload };
},
},
};
export default KazooUserModel;