Make functions in dataProvider async

Change-Id: Iab36ba6379340e47e7d58b1b2d882cd7cc111f41
This commit is contained in:
Manuel Stahl 2024-04-16 14:11:18 +02:00
parent 0b4f3a60c0
commit 1acffdb618

View file

@ -348,7 +348,7 @@ function getSearchOrder(order) {
} }
const dataProvider = { const dataProvider = {
getList: (resource, params) => { getList: async (resource, params) => {
console.log("getList " + resource); console.log("getList " + resource);
const { const {
user_id, user_id,
@ -383,13 +383,14 @@ const dataProvider = {
const endpoint_url = homeserver + res.path; const endpoint_url = homeserver + res.path;
const url = `${endpoint_url}?${stringify(query)}`; const url = `${endpoint_url}?${stringify(query)}`;
return jsonClient(url).then(({ json }) => ({ const { json } = await jsonClient(url);
return {
data: json[res.data].map(res.map), data: json[res.data].map(res.map),
total: res.total(json, from, perPage), total: res.total(json, from, perPage),
})); };
}, },
getOne: (resource, params) => { getOne: async (resource, params) => {
console.log("getOne " + resource); console.log("getOne " + resource);
const homeserver = localStorage.getItem("base_url"); const homeserver = localStorage.getItem("base_url");
if (!homeserver || !(resource in resourceMap)) return Promise.reject(); if (!homeserver || !(resource in resourceMap)) return Promise.reject();
@ -397,14 +398,13 @@ const dataProvider = {
const res = resourceMap[resource]; const res = resourceMap[resource];
const endpoint_url = homeserver + res.path; const endpoint_url = homeserver + res.path;
return jsonClient(`${endpoint_url}/${encodeURIComponent(params.id)}`).then( const { json } = await jsonClient(
({ json }) => ({ `${endpoint_url}/${encodeURIComponent(params.id)}`
data: res.map(json),
})
); );
return { data: res.map(json) };
}, },
getMany: (resource, params) => { getMany: async (resource, params) => {
console.log("getMany " + resource); console.log("getMany " + resource);
const homeserver = localStorage.getItem("base_url"); const homeserver = localStorage.getItem("base_url");
if (!homeserver || !(resource in resourceMap)) return Promise.reject(); if (!homeserver || !(resource in resourceMap)) return Promise.reject();
@ -412,17 +412,18 @@ const dataProvider = {
const res = resourceMap[resource]; const res = resourceMap[resource];
const endpoint_url = homeserver + res.path; const endpoint_url = homeserver + res.path;
return Promise.all( const responses = await Promise.all(
params.ids.map(id => params.ids.map(id =>
jsonClient(`${endpoint_url}/${encodeURIComponent(id)}`) jsonClient(`${endpoint_url}/${encodeURIComponent(id)}`)
) )
).then(responses => ({ );
return {
data: responses.map(({ json }) => res.map(json)), data: responses.map(({ json }) => res.map(json)),
total: responses.length, total: responses.length,
})); };
}, },
getManyReference: (resource, params) => { getManyReference: async (resource, params) => {
console.log("getManyReference " + resource); console.log("getManyReference " + resource);
const { page, perPage } = params.pagination; const { page, perPage } = params.pagination;
const { field, order } = params.sort; const { field, order } = params.sort;
@ -442,13 +443,14 @@ const dataProvider = {
const ref = res["reference"](params.id); const ref = res["reference"](params.id);
const endpoint_url = `${homeserver}${ref.endpoint}?${stringify(query)}`; const endpoint_url = `${homeserver}${ref.endpoint}?${stringify(query)}`;
return jsonClient(endpoint_url).then(({ headers, json }) => ({ const { json } = await jsonClient(endpoint_url);
return {
data: json[res.data].map(res.map), data: json[res.data].map(res.map),
total: res.total(json, from, perPage), total: res.total(json, from, perPage),
})); };
}, },
update: (resource, params) => { update: async (resource, params) => {
console.log("update " + resource); console.log("update " + resource);
const homeserver = localStorage.getItem("base_url"); const homeserver = localStorage.getItem("base_url");
if (!homeserver || !(resource in resourceMap)) return Promise.reject(); if (!homeserver || !(resource in resourceMap)) return Promise.reject();
@ -456,15 +458,17 @@ const dataProvider = {
const res = resourceMap[resource]; const res = resourceMap[resource];
const endpoint_url = homeserver + res.path; const endpoint_url = homeserver + res.path;
return jsonClient(`${endpoint_url}/${encodeURIComponent(params.id)}`, { const { json } = await jsonClient(
`${endpoint_url}/${encodeURIComponent(params.id)}`,
{
method: "PUT", method: "PUT",
body: JSON.stringify(params.data, filterNullValues), body: JSON.stringify(params.data, filterNullValues),
}).then(({ json }) => ({ }
data: res.map(json), );
})); return { data: res.map(json) };
}, },
updateMany: (resource, params) => { updateMany: async (resource, params) => {
console.log("updateMany " + resource); console.log("updateMany " + resource);
const homeserver = localStorage.getItem("base_url"); const homeserver = localStorage.getItem("base_url");
if (!homeserver || !(resource in resourceMap)) return Promise.reject(); if (!homeserver || !(resource in resourceMap)) return Promise.reject();
@ -472,7 +476,7 @@ const dataProvider = {
const res = resourceMap[resource]; const res = resourceMap[resource];
const endpoint_url = homeserver + res.path; const endpoint_url = homeserver + res.path;
return Promise.all( const responses = await Promise.all(
params.ids.map( params.ids.map(
id => jsonClient(`${endpoint_url}/${encodeURIComponent(id)}`), id => jsonClient(`${endpoint_url}/${encodeURIComponent(id)}`),
{ {
@ -480,12 +484,11 @@ const dataProvider = {
body: JSON.stringify(params.data, filterNullValues), body: JSON.stringify(params.data, filterNullValues),
} }
) )
).then(responses => ({ );
data: responses.map(({ json }) => json), return { data: responses.map(({ json }) => json) };
}));
}, },
create: (resource, params) => { create: async (resource, params) => {
console.log("create " + resource); console.log("create " + resource);
const homeserver = localStorage.getItem("base_url"); const homeserver = localStorage.getItem("base_url");
if (!homeserver || !(resource in resourceMap)) return Promise.reject(); if (!homeserver || !(resource in resourceMap)) return Promise.reject();
@ -495,15 +498,14 @@ const dataProvider = {
const create = res["create"](params.data); const create = res["create"](params.data);
const endpoint_url = homeserver + create.endpoint; const endpoint_url = homeserver + create.endpoint;
return jsonClient(endpoint_url, { const { json } = await jsonClient(endpoint_url, {
method: create.method, method: create.method,
body: JSON.stringify(create.body, filterNullValues), body: JSON.stringify(create.body, filterNullValues),
}).then(({ json }) => ({ });
data: res.map(json), return { data: res.map(json) };
}));
}, },
createMany: (resource, params) => { createMany: async (resource, params) => {
console.log("createMany " + resource); console.log("createMany " + resource);
const homeserver = localStorage.getItem("base_url"); const homeserver = localStorage.getItem("base_url");
if (!homeserver || !(resource in resourceMap)) return Promise.reject(); if (!homeserver || !(resource in resourceMap)) return Promise.reject();
@ -511,7 +513,7 @@ const dataProvider = {
const res = resourceMap[resource]; const res = resourceMap[resource];
if (!("create" in res)) return Promise.reject(); if (!("create" in res)) return Promise.reject();
return Promise.all( const responses = await Promise.all(
params.ids.map(id => { params.ids.map(id => {
params.data.id = id; params.data.id = id;
const cre = res["create"](params.data); const cre = res["create"](params.data);
@ -521,12 +523,11 @@ const dataProvider = {
body: JSON.stringify(cre.body, filterNullValues), body: JSON.stringify(cre.body, filterNullValues),
}); });
}) })
).then(responses => ({ );
data: responses.map(({ json }) => json), return { data: responses.map(({ json }) => json) };
}));
}, },
delete: (resource, params) => { delete: async (resource, params) => {
console.log("delete " + resource); console.log("delete " + resource);
const homeserver = localStorage.getItem("base_url"); const homeserver = localStorage.getItem("base_url");
if (!homeserver || !(resource in resourceMap)) return Promise.reject(); if (!homeserver || !(resource in resourceMap)) return Promise.reject();
@ -536,24 +537,22 @@ const dataProvider = {
if ("delete" in res) { if ("delete" in res) {
const del = res["delete"](params); const del = res["delete"](params);
const endpoint_url = homeserver + del.endpoint; const endpoint_url = homeserver + del.endpoint;
return jsonClient(endpoint_url, { const { json } = await jsonClient(endpoint_url, {
method: "method" in del ? del.method : "DELETE", method: "method" in del ? del.method : "DELETE",
body: "body" in del ? JSON.stringify(del.body) : null, body: "body" in del ? JSON.stringify(del.body) : null,
}).then(({ json }) => ({ });
data: json, return { data: json };
}));
} else { } else {
const endpoint_url = homeserver + res.path; const endpoint_url = homeserver + res.path;
return jsonClient(`${endpoint_url}/${params.id}`, { const { json } = await jsonClient(`${endpoint_url}/${params.id}`, {
method: "DELETE", method: "DELETE",
body: JSON.stringify(params.previousData, filterNullValues), body: JSON.stringify(params.previousData, filterNullValues),
}).then(({ json }) => ({ });
data: json, return { data: json };
}));
} }
}, },
deleteMany: (resource, params) => { deleteMany: async (resource, params) => {
console.log("deleteMany " + resource); console.log("deleteMany " + resource);
const homeserver = localStorage.getItem("base_url"); const homeserver = localStorage.getItem("base_url");
if (!homeserver || !(resource in resourceMap)) return Promise.reject(); if (!homeserver || !(resource in resourceMap)) return Promise.reject();
@ -561,7 +560,7 @@ const dataProvider = {
const res = resourceMap[resource]; const res = resourceMap[resource];
if ("delete" in res) { if ("delete" in res) {
return Promise.all( const responses = await Promise.all(
params.ids.map(id => { params.ids.map(id => {
const del = res["delete"]({ ...params, id: id }); const del = res["delete"]({ ...params, id: id });
const endpoint_url = homeserver + del.endpoint; const endpoint_url = homeserver + del.endpoint;
@ -570,21 +569,21 @@ const dataProvider = {
body: "body" in del ? JSON.stringify(del.body) : null, body: "body" in del ? JSON.stringify(del.body) : null,
}); });
}) })
).then(responses => ({ );
return {
data: responses.map(({ json }) => json), data: responses.map(({ json }) => json),
})); };
} else { } else {
const endpoint_url = homeserver + res.path; const endpoint_url = homeserver + res.path;
return Promise.all( const responses = await Promise.all(
params.ids.map(id => params.ids.map(id =>
jsonClient(`${endpoint_url}/${id}`, { jsonClient(`${endpoint_url}/${id}`, {
method: "DELETE", method: "DELETE",
body: JSON.stringify(params.data, filterNullValues), body: JSON.stringify(params.data, filterNullValues),
}) })
) )
).then(responses => ({ );
data: responses.map(({ json }) => json), return { data: responses.map(({ json }) => json) };
}));
} }
}, },
}; };