import { notification, message as amessage } from 'antd'; import isUndefined from 'lodash/isUndefined'; // 1. 业务重定向 const bizRedirectHandler = response => { const { code, data } = response; if (Number(code) === 302 && data && data.redirectUrl) { window.location.assign(data.redirectUrl); } }; // 2. 开发级错误信息转换 const bizDevErrorAdapter = response => { const { code, success, message, description } = response; const opCode = Number(code); if (success === false && opCode >= 300 && opCode !== 302) { return { message: message || `${code}`, description: description || message, }; } return null; }; // 3. 用户级错误信息转换 const bizErrorMessageAdapter = response => { const { code, success, message } = response; const opCode = Number(code); if (success === false && (opCode < 300 || opCode === 302)) { return message; } return null; }; // 4. 成功信息转换 const bizSuccessMessageAdapter = (response, successMessage) => { const { success, message } = response; if (successMessage === false) { return null; } if (success !== false) { if (successMessage === true) { return message; } return successMessage; } return null; }; // 5. 消息通知 const bizNotifyHandler = notifyMessages => { const { successMessage, errorMessage, errorDesc } = notifyMessages; if (successMessage) { amessage.success(successMessage); } else if (errorMessage) { amessage.error(errorMessage); } else if (errorDesc) { notification.error({ message: errorDesc.message, description: errorDesc.description, }); } }; // 6. 业务数据转换 const bizDataAdapter = response => { if (response && !isUndefined(response.data)) { return response.data; } return response; }; export default { bizDataAdapter, bizDevErrorAdapter, bizErrorMessageAdapter, bizSuccessMessageAdapter, bizNotifyHandler, bizRedirectHandler, };