| import request from "../utils/request"; | 
| import * as Common from "../utils/common"; | 
|   | 
| const MyDataProvider = { | 
|   // *** https://marmelab.com/react-admin/DataProviderWriting.html *** | 
|   | 
|   // get a list of records based on sort, filter, and pagination | 
|   getList: async (resource, params) => { | 
|     // console.log("getList", resource, params); | 
|     const _params = Common.integrateParams(params); | 
|     const res = await request.post(resource + "/page", _params); | 
|     const { code, msg, data } = res.data; | 
|     if (code === 200) { | 
|       return Promise.resolve({ | 
|         data: data.records, | 
|         total: data.total, | 
|       }); | 
|     } | 
|     return Promise.reject(new Error(msg)); | 
|   }, | 
|   | 
|   // get a single record by id | 
|   getOne: async (resource, params) => { | 
|     // console.log("getOne", resource, params); | 
|     const res = await request.get(resource + "/" + params.id); | 
|     const { code, msg, data } = res.data; | 
|     if (code === 200) { | 
|       return Promise.resolve({ | 
|         data: { | 
|           id: data.id, | 
|           ...data, | 
|         }, | 
|       }); | 
|     } | 
|     return Promise.reject(new Error(msg)); | 
|   }, | 
|   | 
|   // get a list of records based on an array of ids | 
|   getMany: async (resource, params) => { | 
|     // console.log("getMany", resource, params); | 
|     const res = await request.post(resource + "/many/" + params.ids); | 
|     const { code, msg, data } = res.data; | 
|     if (code === 200) { | 
|       return Promise.resolve({ | 
|         data: data.map((item) => ({ | 
|           id: item.id, | 
|           ...item, | 
|         })), | 
|       }); | 
|     } | 
|     return Promise.reject(new Error(msg)); | 
|   }, | 
|   | 
|   // get the records referenced to another record, e.g. comments for a post | 
|   getManyReference: async (resource, params) => { | 
|     console.log("getManyReference", resource, params); | 
|   | 
|     return Promise.resolve(); | 
|   }, | 
|   | 
|   // create a record | 
|   create: async (resource, params) => { | 
|     const res = await request.post(resource + "/save", params?.data); | 
|     const { code, msg, data } = res.data; | 
|     if (code === 200) { | 
|       return Promise.resolve({ | 
|         data: { | 
|           id: data.id, | 
|         }, | 
|       }); | 
|     } | 
|     return Promise.reject(new Error(msg)); | 
|   }, | 
|   | 
|   // update a record based on a patch | 
|   update: async (resource, params) => { | 
|     const res = await request.post(resource + "/update", { | 
|       id: params.id, | 
|       ...params.data, | 
|     }); | 
|     const { code, msg, data } = res.data; | 
|     if (code === 200) { | 
|       return Promise.resolve({ | 
|         data: data, | 
|       }); | 
|     } | 
|     return Promise.reject(new Error(msg)); | 
|   }, | 
|   | 
|   // update a list of records based on an array of ids and a common patch | 
|   updateMany: async (resource, params) => { | 
|     console.log("updateMany", resource, params); | 
|     const res = await request.post( | 
|       resource + "/update/many", | 
|       params.ids.map((id) => ({ id, ...params.data })), | 
|     ); | 
|     const { code, msg, data } = res.data; | 
|     if (code === 200) { | 
|       return Promise.resolve({ | 
|         data: data, | 
|       }); | 
|     } | 
|     return Promise.reject(new Error(msg)); | 
|   }, | 
|   | 
|   // delete a record by id | 
|   delete: async (resource, params) => { | 
|     console.log("delete", resource, params); | 
|     const res = await request.post(resource + "/remove/" + [params.id]); | 
|     const { code, msg, data } = res.data; | 
|     if (code === 200) { | 
|       return Promise.resolve({ | 
|         data: { | 
|           id: params.id, | 
|         }, | 
|       }); | 
|     } | 
|     return Promise.reject(new Error(msg)); | 
|   }, | 
|   | 
|   // delete a list of records based on an array of ids | 
|   deleteMany: async (resource, params) => { | 
|     console.log("deleteMany", resource, params); | 
|     const res = await request.post(resource + "/remove/" + params?.ids); | 
|     const { code, msg, data } = res.data; | 
|     if (code === 200) { | 
|       return Promise.resolve({ | 
|         data: data, | 
|       }); | 
|     } | 
|     return Promise.reject(new Error(msg)); | 
|   }, | 
|   | 
|   // export excel from all data | 
|   export: async (resource, params) => { | 
|     const _params = Common.integrateParams(params); | 
|     try { | 
|       const res = await request.post(`${resource}/export`, _params, { | 
|         responseType: "blob", | 
|       }); | 
|       return res; | 
|     } catch (error) { | 
|       return Promise.reject(new Error(error)); | 
|     } | 
|   }, | 
| }; | 
|   | 
| export default MyDataProvider; |