Add schemas and types for events and event themes

This commit introduces detailed schemas and types for events and event themes, including creation, update, and response objects. It also adds support for paginated event responses and newly defined API endpoints such as creating, updating, and fetching event themes and events. These additions enhance the schema structure and improve type safety for event-related operations.
This commit is contained in:
2025-03-11 06:18:56 +01:00
parent 79733d5bec
commit 114f0e7807
4 changed files with 1988 additions and 0 deletions

View File

@@ -25,6 +25,42 @@ import type {
ChangePasswordError,
GetCurrentUserInfoData,
GetCurrentUserInfoResponse,
ListEventThemesData,
ListEventThemesResponse,
ListEventThemesError,
CreateEventThemeData,
CreateEventThemeResponse,
CreateEventThemeError,
GetEventThemeData,
GetEventThemeResponse,
GetEventThemeError,
UpdateEventThemeData,
UpdateEventThemeResponse,
UpdateEventThemeError,
CreateEventData,
CreateEventResponse,
CreateEventError,
GetUserEventsData,
GetUserEventsResponse,
GetUserEventsError,
GetUpcomingEventsData,
GetUpcomingEventsResponse,
GetUpcomingEventsError,
GetPublicEventsData,
GetPublicEventsResponse,
GetPublicEventsError,
DeleteEventData,
DeleteEventResponse,
DeleteEventError,
GetEventData,
GetEventResponse,
GetEventError,
UpdateEventData,
UpdateEventResponse,
UpdateEventError,
GetEventBySlugData,
GetEventBySlugResponse,
GetEventBySlugError,
} from "./types.gen";
import { client as _heyApiClient } from "./client.gen";
@@ -212,3 +248,265 @@ export const getCurrentUserInfo = <ThrowOnError extends boolean = false>(
...options,
});
};
/**
* List Themes
* List event themes.
*/
export const listEventThemes = <ThrowOnError extends boolean = false>(
options?: Options<ListEventThemesData, ThrowOnError>,
) => {
return (options?.client ?? _heyApiClient).get<
ListEventThemesResponse,
ListEventThemesError,
ThrowOnError
>({
url: "/api/v1/event_themes/",
...options,
});
};
/**
* Create Theme
* Create new event theme.
*/
export const createEventTheme = <ThrowOnError extends boolean = false>(
options: Options<CreateEventThemeData, ThrowOnError>,
) => {
return (options.client ?? _heyApiClient).post<
CreateEventThemeResponse,
CreateEventThemeError,
ThrowOnError
>({
url: "/api/v1/event_themes/",
...options,
headers: {
"Content-Type": "application/json",
...options?.headers,
},
});
};
/**
* Get Theme
* Get specific theme by ID.
*/
export const getEventTheme = <ThrowOnError extends boolean = false>(
options: Options<GetEventThemeData, ThrowOnError>,
) => {
return (options.client ?? _heyApiClient).get<
GetEventThemeResponse,
GetEventThemeError,
ThrowOnError
>({
url: "/api/v1/event_themes/{theme_id}",
...options,
});
};
/**
* Update Theme
* Update specific theme by ID.
*/
export const updateEventTheme = <ThrowOnError extends boolean = false>(
options: Options<UpdateEventThemeData, ThrowOnError>,
) => {
return (options.client ?? _heyApiClient).patch<
UpdateEventThemeResponse,
UpdateEventThemeError,
ThrowOnError
>({
url: "/api/v1/event_themes/{theme_id}",
...options,
headers: {
"Content-Type": "application/json",
...options?.headers,
},
});
};
/**
* Create Event
* Create a new event.
*/
export const createEvent = <ThrowOnError extends boolean = false>(
options: Options<CreateEventData, ThrowOnError>,
) => {
return (options.client ?? _heyApiClient).post<
CreateEventResponse,
CreateEventError,
ThrowOnError
>({
security: [
{
scheme: "bearer",
type: "http",
},
],
url: "/api/v1/events/",
...options,
headers: {
"Content-Type": "application/json",
...options?.headers,
},
});
};
/**
* Get User Events
* Get all events created by the current user with pagination.
*/
export const getUserEvents = <ThrowOnError extends boolean = false>(
options?: Options<GetUserEventsData, ThrowOnError>,
) => {
return (options?.client ?? _heyApiClient).get<
GetUserEventsResponse,
GetUserEventsError,
ThrowOnError
>({
security: [
{
scheme: "bearer",
type: "http",
},
],
url: "/api/v1/events/me",
...options,
});
};
/**
* Get Upcoming Events
* Get upcoming public events with pagination.
*/
export const getUpcomingEvents = <ThrowOnError extends boolean = false>(
options?: Options<GetUpcomingEventsData, ThrowOnError>,
) => {
return (options?.client ?? _heyApiClient).get<
GetUpcomingEventsResponse,
GetUpcomingEventsError,
ThrowOnError
>({
security: [
{
scheme: "bearer",
type: "http",
},
],
url: "/api/v1/events/upcoming",
...options,
});
};
/**
* Get Public Events
* Get all public events with pagination.
*/
export const getPublicEvents = <ThrowOnError extends boolean = false>(
options?: Options<GetPublicEventsData, ThrowOnError>,
) => {
return (options?.client ?? _heyApiClient).get<
GetPublicEventsResponse,
GetPublicEventsError,
ThrowOnError
>({
url: "/api/v1/events/public",
...options,
});
};
/**
* Delete Event
* Delete event (soft delete by default).
*/
export const deleteEvent = <ThrowOnError extends boolean = false>(
options: Options<DeleteEventData, ThrowOnError>,
) => {
return (options.client ?? _heyApiClient).delete<
DeleteEventResponse,
DeleteEventError,
ThrowOnError
>({
security: [
{
scheme: "bearer",
type: "http",
},
],
url: "/api/v1/events/{event_id}",
...options,
});
};
/**
* Get Event
* Get event by ID.
*/
export const getEvent = <ThrowOnError extends boolean = false>(
options: Options<GetEventData, ThrowOnError>,
) => {
return (options.client ?? _heyApiClient).get<
GetEventResponse,
GetEventError,
ThrowOnError
>({
security: [
{
scheme: "bearer",
type: "http",
},
],
url: "/api/v1/events/{event_id}",
...options,
});
};
/**
* Update Event
* Update event.
*/
export const updateEvent = <ThrowOnError extends boolean = false>(
options: Options<UpdateEventData, ThrowOnError>,
) => {
return (options.client ?? _heyApiClient).put<
UpdateEventResponse,
UpdateEventError,
ThrowOnError
>({
security: [
{
scheme: "bearer",
type: "http",
},
],
url: "/api/v1/events/{event_id}",
...options,
headers: {
"Content-Type": "application/json",
...options?.headers,
},
});
};
/**
* Get Event By Slug
* Get event by slug.
*/
export const getEventBySlug = <ThrowOnError extends boolean = false>(
options: Options<GetEventBySlugData, ThrowOnError>,
) => {
return (options.client ?? _heyApiClient).get<
GetEventBySlugResponse,
GetEventBySlugError,
ThrowOnError
>({
security: [
{
scheme: "bearer",
type: "http",
},
],
url: "/api/v1/events/by-slug/{slug}",
...options,
});
};