| | |
| | | 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) => { |
| | | 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; |