refactor: implement user deletion functionality and enhance settings management

This commit is contained in:
Abhimanyu Saharan
2026-02-10 00:17:06 +05:30
parent d9f560ee0c
commit 55d4c482bc
11 changed files with 843 additions and 41 deletions

View File

@@ -20,13 +20,19 @@ import type {
UseQueryResult,
} from "@tanstack/react-query";
import type { HTTPValidationError, UserRead, UserUpdate } from ".././model";
import type {
HTTPValidationError,
OkResponse,
UserRead,
UserUpdate,
} from ".././model";
import { customFetch } from "../../mutator";
type SecondParameter<T extends (...args: never) => unknown> = Parameters<T>[1];
/**
* Return the authenticated user's current profile payload.
* @summary Get Me
*/
export type getMeApiV1UsersMeGetResponse200 = {
@@ -196,6 +202,109 @@ export function useGetMeApiV1UsersMeGet<
}
/**
* Delete the authenticated account and any personal-only organizations.
* @summary Delete Me
*/
export type deleteMeApiV1UsersMeDeleteResponse200 = {
data: OkResponse;
status: 200;
};
export type deleteMeApiV1UsersMeDeleteResponseSuccess =
deleteMeApiV1UsersMeDeleteResponse200 & {
headers: Headers;
};
export type deleteMeApiV1UsersMeDeleteResponse =
deleteMeApiV1UsersMeDeleteResponseSuccess;
export const getDeleteMeApiV1UsersMeDeleteUrl = () => {
return `/api/v1/users/me`;
};
export const deleteMeApiV1UsersMeDelete = async (
options?: RequestInit,
): Promise<deleteMeApiV1UsersMeDeleteResponse> => {
return customFetch<deleteMeApiV1UsersMeDeleteResponse>(
getDeleteMeApiV1UsersMeDeleteUrl(),
{
...options,
method: "DELETE",
},
);
};
export const getDeleteMeApiV1UsersMeDeleteMutationOptions = <
TError = unknown,
TContext = unknown,
>(options?: {
mutation?: UseMutationOptions<
Awaited<ReturnType<typeof deleteMeApiV1UsersMeDelete>>,
TError,
void,
TContext
>;
request?: SecondParameter<typeof customFetch>;
}): UseMutationOptions<
Awaited<ReturnType<typeof deleteMeApiV1UsersMeDelete>>,
TError,
void,
TContext
> => {
const mutationKey = ["deleteMeApiV1UsersMeDelete"];
const { mutation: mutationOptions, request: requestOptions } = options
? options.mutation &&
"mutationKey" in options.mutation &&
options.mutation.mutationKey
? options
: { ...options, mutation: { ...options.mutation, mutationKey } }
: { mutation: { mutationKey }, request: undefined };
const mutationFn: MutationFunction<
Awaited<ReturnType<typeof deleteMeApiV1UsersMeDelete>>,
void
> = () => {
return deleteMeApiV1UsersMeDelete(requestOptions);
};
return { mutationFn, ...mutationOptions };
};
export type DeleteMeApiV1UsersMeDeleteMutationResult = NonNullable<
Awaited<ReturnType<typeof deleteMeApiV1UsersMeDelete>>
>;
export type DeleteMeApiV1UsersMeDeleteMutationError = unknown;
/**
* @summary Delete Me
*/
export const useDeleteMeApiV1UsersMeDelete = <
TError = unknown,
TContext = unknown,
>(
options?: {
mutation?: UseMutationOptions<
Awaited<ReturnType<typeof deleteMeApiV1UsersMeDelete>>,
TError,
void,
TContext
>;
request?: SecondParameter<typeof customFetch>;
},
queryClient?: QueryClient,
): UseMutationResult<
Awaited<ReturnType<typeof deleteMeApiV1UsersMeDelete>>,
TError,
void,
TContext
> => {
return useMutation(
getDeleteMeApiV1UsersMeDeleteMutationOptions(options),
queryClient,
);
};
/**
* Apply partial profile updates for the authenticated user.
* @summary Update Me
*/
export type updateMeApiV1UsersMePatchResponse200 = {