|  |  |  | 
|---|
|  |  |  | import request from '../utils/request'; | 
|---|
|  |  |  | import * as Common from '../utils/common'; | 
|---|
|  |  |  | import request from "../utils/request"; | 
|---|
|  |  |  | import * as Common from "../utils/common"; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | const MyDataProvider = { | 
|---|
|  |  |  | // *** https://marmelab.com/react-admin/DataProviderWriting.html *** | 
|---|
|  |  |  | // *** 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) => { | 
|---|
|  |  |  | console.log("create", 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) => { | 
|---|
|  |  |  | console.log("update", 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) => { | 
|---|
|  |  |  | console.log("export", 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)); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | // 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)); | 
|---|
|  |  |  | }, | 
|---|
|  |  |  |  | 
|---|
|  |  |  | export default MyDataProvider; | 
|---|
|  |  |  | // 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) => { | 
|---|
|  |  |  | console.log("create", 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) => { | 
|---|
|  |  |  | console.log("update", 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; | 
|---|