Add support for deleting event themes

This commit introduces functionality to delete event themes via the API. It includes type definitions, SDK methods, and a React Query mutation for `deleteEventTheme`. Users can perform both soft and hard deletes with this implementation.
This commit is contained in:
2025-03-12 15:22:03 +01:00
parent 1abc4a743a
commit e2265573eb
3 changed files with 79 additions and 0 deletions

View File

@@ -11,6 +11,7 @@ import {
getCurrentUserInfo, getCurrentUserInfo,
listEventThemes, listEventThemes,
createEventTheme, createEventTheme,
deleteEventTheme,
getEventTheme, getEventTheme,
updateEventTheme, updateEventTheme,
createEvent, createEvent,
@@ -44,6 +45,8 @@ import type {
CreateEventThemeData, CreateEventThemeData,
CreateEventThemeError, CreateEventThemeError,
CreateEventThemeResponse, CreateEventThemeResponse,
DeleteEventThemeData,
DeleteEventThemeError,
GetEventThemeData, GetEventThemeData,
UpdateEventThemeData, UpdateEventThemeData,
UpdateEventThemeError, UpdateEventThemeError,
@@ -387,6 +390,26 @@ export const createEventThemeMutation = (
return mutationOptions; return mutationOptions;
}; };
export const deleteEventThemeMutation = (
options?: Partial<Options<DeleteEventThemeData>>,
) => {
const mutationOptions: UseMutationOptions<
unknown,
AxiosError<DeleteEventThemeError>,
Options<DeleteEventThemeData>
> = {
mutationFn: async (localOptions) => {
const { data } = await deleteEventTheme({
...options,
...localOptions,
throwOnError: true,
});
return data;
},
};
return mutationOptions;
};
export const getEventThemeQueryKey = (options: Options<GetEventThemeData>) => export const getEventThemeQueryKey = (options: Options<GetEventThemeData>) =>
createQueryKey("getEventTheme", options); createQueryKey("getEventTheme", options);

View File

@@ -31,6 +31,8 @@ import type {
CreateEventThemeData, CreateEventThemeData,
CreateEventThemeResponse, CreateEventThemeResponse,
CreateEventThemeError, CreateEventThemeError,
DeleteEventThemeData,
DeleteEventThemeError,
GetEventThemeData, GetEventThemeData,
GetEventThemeResponse, GetEventThemeResponse,
GetEventThemeError, GetEventThemeError,
@@ -287,6 +289,29 @@ export const createEventTheme = <ThrowOnError extends boolean = false>(
}); });
}; };
/**
* Delete Theme
* Delete specific theme by ID.
*/
export const deleteEventTheme = <ThrowOnError extends boolean = false>(
options: Options<DeleteEventThemeData, ThrowOnError>,
) => {
return (options.client ?? _heyApiClient).delete<
unknown,
DeleteEventThemeError,
ThrowOnError
>({
security: [
{
scheme: "bearer",
type: "http",
},
],
url: "/api/v1/event_themes/{theme_id}",
...options,
});
};
/** /**
* Get Theme * Get Theme
* Get specific theme by ID. * Get specific theme by ID.

View File

@@ -413,6 +413,37 @@ export type CreateEventThemeResponses = {
export type CreateEventThemeResponse = export type CreateEventThemeResponse =
CreateEventThemeResponses[keyof CreateEventThemeResponses]; CreateEventThemeResponses[keyof CreateEventThemeResponses];
export type DeleteEventThemeData = {
body?: never;
path: {
theme_id: string;
};
query?: {
/**
* Perform hard delete instead of soft delete
*/
hard_delete?: boolean;
};
url: "/api/v1/event_themes/{theme_id}";
};
export type DeleteEventThemeErrors = {
/**
* Validation Error
*/
422: HttpValidationError;
};
export type DeleteEventThemeError =
DeleteEventThemeErrors[keyof DeleteEventThemeErrors];
export type DeleteEventThemeResponses = {
/**
* Successful Response
*/
200: unknown;
};
export type GetEventThemeData = { export type GetEventThemeData = {
body?: never; body?: never;
path: { path: {