portal-dashboard/app/data/account-provider.ts

66 lines
1.7 KiB
TypeScript
Raw Normal View History

2024-03-19 12:54:10 +00:00
import type {DataProvider, UpdateParams, UpdateResponse, HttpError} from "@refinedev/core";
import {SdkProvider} from "~/data/sdk-provider.js";
2024-03-19 12:54:10 +00:00
type AccountParams = {
email?: string;
password?: string;
}
type AccountData = AccountParams;
export const accountProvider: SdkProvider = {
2024-03-19 12:54:10 +00:00
getList: () => {
console.log("Not implemented");
return Promise.resolve({
data: [],
});
2024-03-19 12:54:10 +00:00
},
getOne: () => {
console.log("Not implemented");
return Promise.resolve({
data: {},
});
2024-03-19 12:54:10 +00:00
},
// @ts-ignore
async update<TVariables extends AccountParams = AccountParams>(
params: UpdateParams<AccountParams>,
): Promise<UpdateResponse<AccountData>> {
if (params.variables.email && params.variables.password) {
2024-03-19 13:12:21 +00:00
const ret = await accountProvider.sdk?.account().updateEmail(params.variables.email, params.variables.password);
2024-03-19 12:54:10 +00:00
if (ret) {
if (ret instanceof Error) {
return Promise.reject(ret satisfies HttpError)
2024-03-19 12:54:10 +00:00
}
} else {
return Promise.reject();
}
return {
data:
{
email: params.variables.email,
},
};
}
// Return an empty response if params.variables is undefined
return {
data: {} as AccountParams,
};
},
create: () => {
console.log("Not implemented");
return Promise.resolve({
data: {},
});
2024-03-19 12:54:10 +00:00
},
deleteOne: () => {
console.log("Not implemented");
return Promise.resolve({
data: {},
});
2024-03-19 12:54:10 +00:00
},
getApiUrl: () => "",
}