diff --git a/app/data/account-provider.ts b/app/data/account-provider.ts index 5028718..67fbc43 100644 --- a/app/data/account-provider.ts +++ b/app/data/account-provider.ts @@ -1,11 +1,53 @@ -import type { DataProvider } from "@refinedev/core"; +import type {DataProvider, UpdateParams, UpdateResponse, HttpError} from "@refinedev/core"; import {SdkProvider} from "~/data/sdk-provider.js"; -export const accountProvider: SdkProvider = { - getList: () => { throw Error("Not Implemented") }, - getOne: () => { throw Error("Not Implemented") }, - update: () => { throw Error("Not Implemented") }, - create: () => { throw Error("Not Implemented") }, - deleteOne: () => { throw Error("Not Implemented") }, - getApiUrl: () => "", +type AccountParams = { + email?: string; + password?: string; +} + +type AccountData = AccountParams; + +export const accountProvider: SdkProvider = { + getList: () => { + throw Error("Not Implemented") + }, + getOne: () => { + throw Error("Not Implemented") + }, + // @ts-ignore + async update( + params: UpdateParams, + ): Promise> { + if (params.variables.email && params.variables.password) { + const ret = accountProvider.sdk?.account().updateEmail(params.variables.email, params.variables.password); + + if (ret) { + if (ret instanceof Error) { + return Promise.reject(ret) + } + } else { + return Promise.reject(); + } + + return { + data: + { + email: params.variables.email, + }, + }; + } + + // Return an empty response if params.variables is undefined + return { + data: {} as AccountParams, + }; + }, + create: () => { + throw Error("Not Implemented") + }, + deleteOne: () => { + throw Error("Not Implemented") + }, + getApiUrl: () => "", } diff --git a/app/routes/account.tsx b/app/routes/account.tsx index 41a4717..b9cd815 100644 --- a/app/routes/account.tsx +++ b/app/routes/account.tsx @@ -222,8 +222,8 @@ const ChangeEmailForm = ({ const data = Object.fromEntries(new FormData(e.currentTarget).entries()); console.log(identity); updateEmail({ - resource: "users", - id: identity?.id || "", + resource: "account", + id: "", values: { email: data.email.toString(), },