162 lines
4.7 KiB
TypeScript
162 lines
4.7 KiB
TypeScript
/**
|
|
* Generated by orval v7.16.0 🍺
|
|
* Do not edit manually.
|
|
* OpenAPI definition
|
|
* OpenAPI spec version: v0
|
|
*/
|
|
import {
|
|
useMutation,
|
|
useQuery
|
|
} from '@tanstack/vue-query';
|
|
import type {
|
|
DataTag,
|
|
MutationFunction,
|
|
QueryClient,
|
|
QueryFunction,
|
|
QueryKey,
|
|
UseMutationOptions,
|
|
UseMutationReturnType,
|
|
UseQueryOptions,
|
|
UseQueryReturnType
|
|
} from '@tanstack/vue-query';
|
|
|
|
import {
|
|
unref
|
|
} from 'vue';
|
|
import type {
|
|
MaybeRef
|
|
} from 'vue';
|
|
|
|
import type {
|
|
PlaylistCreateRequest,
|
|
PlaylistReadResponse
|
|
} from '.././models';
|
|
|
|
import { axiosInstance } from '.././axios-instance';
|
|
|
|
|
|
type SecondParameter<T extends (...args: never) => unknown> = Parameters<T>[1];
|
|
|
|
|
|
|
|
export const createPlaylist = (
|
|
playlistCreateRequest: MaybeRef<PlaylistCreateRequest>,
|
|
options?: SecondParameter<typeof axiosInstance>,signal?: AbortSignal
|
|
) => {
|
|
playlistCreateRequest = unref(playlistCreateRequest);
|
|
|
|
return axiosInstance<PlaylistReadResponse>(
|
|
{url: `/playlist`, method: 'POST',
|
|
headers: {'Content-Type': 'application/json', },
|
|
data: playlistCreateRequest, signal
|
|
},
|
|
options);
|
|
}
|
|
|
|
|
|
|
|
export const getCreatePlaylistMutationOptions = <TError = unknown,
|
|
TContext = unknown>(options?: { mutation?:UseMutationOptions<Awaited<ReturnType<typeof createPlaylist>>, TError,{data: PlaylistCreateRequest}, TContext>, request?: SecondParameter<typeof axiosInstance>}
|
|
): UseMutationOptions<Awaited<ReturnType<typeof createPlaylist>>, TError,{data: PlaylistCreateRequest}, TContext> => {
|
|
|
|
const mutationKey = ['createPlaylist'];
|
|
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 createPlaylist>>, {data: PlaylistCreateRequest}> = (props) => {
|
|
const {data} = props ?? {};
|
|
|
|
return createPlaylist(data,requestOptions)
|
|
}
|
|
|
|
|
|
|
|
|
|
return { mutationFn, ...mutationOptions }}
|
|
|
|
export type CreatePlaylistMutationResult = NonNullable<Awaited<ReturnType<typeof createPlaylist>>>
|
|
export type CreatePlaylistMutationBody = PlaylistCreateRequest
|
|
export type CreatePlaylistMutationError = unknown
|
|
|
|
export const useCreatePlaylist = <TError = unknown,
|
|
TContext = unknown>(options?: { mutation?:UseMutationOptions<Awaited<ReturnType<typeof createPlaylist>>, TError,{data: PlaylistCreateRequest}, TContext>, request?: SecondParameter<typeof axiosInstance>}
|
|
, queryClient?: QueryClient): UseMutationReturnType<
|
|
Awaited<ReturnType<typeof createPlaylist>>,
|
|
TError,
|
|
{data: PlaylistCreateRequest},
|
|
TContext
|
|
> => {
|
|
|
|
const mutationOptions = getCreatePlaylistMutationOptions(options);
|
|
|
|
return useMutation(mutationOptions, queryClient);
|
|
}
|
|
export const playlists = (
|
|
|
|
options?: SecondParameter<typeof axiosInstance>,signal?: AbortSignal
|
|
) => {
|
|
|
|
|
|
return axiosInstance<PlaylistReadResponse[]>(
|
|
{url: `/playlists`, method: 'GET', signal
|
|
},
|
|
options);
|
|
}
|
|
|
|
|
|
|
|
|
|
export const getPlaylistsQueryKey = () => {
|
|
return [
|
|
'playlists'
|
|
] as const;
|
|
}
|
|
|
|
|
|
export const getPlaylistsQueryOptions = <TData = Awaited<ReturnType<typeof playlists>>, TError = unknown>( options?: { query?:Partial<UseQueryOptions<Awaited<ReturnType<typeof playlists>>, TError, TData>>, request?: SecondParameter<typeof axiosInstance>}
|
|
) => {
|
|
|
|
const {query: queryOptions, request: requestOptions} = options ?? {};
|
|
|
|
const queryKey = getPlaylistsQueryKey();
|
|
|
|
|
|
|
|
const queryFn: QueryFunction<Awaited<ReturnType<typeof playlists>>> = ({ signal }) => playlists(requestOptions, signal);
|
|
|
|
|
|
|
|
|
|
|
|
return { queryKey, queryFn, ...queryOptions} as UseQueryOptions<Awaited<ReturnType<typeof playlists>>, TError, TData>
|
|
}
|
|
|
|
export type PlaylistsQueryResult = NonNullable<Awaited<ReturnType<typeof playlists>>>
|
|
export type PlaylistsQueryError = unknown
|
|
|
|
|
|
|
|
export function usePlaylists<TData = Awaited<ReturnType<typeof playlists>>, TError = unknown>(
|
|
options?: { query?:Partial<UseQueryOptions<Awaited<ReturnType<typeof playlists>>, TError, TData>>, request?: SecondParameter<typeof axiosInstance>}
|
|
, queryClient?: QueryClient
|
|
): UseQueryReturnType<TData, TError> & { queryKey: DataTag<QueryKey, TData, TError> } {
|
|
|
|
const queryOptions = getPlaylistsQueryOptions(options)
|
|
|
|
const query = useQuery(queryOptions, queryClient) as UseQueryReturnType<TData, TError> & { queryKey: DataTag<QueryKey, TData, TError> };
|
|
|
|
query.queryKey = unref(queryOptions).queryKey as DataTag<QueryKey, TData, TError>;
|
|
|
|
return query;
|
|
}
|
|
|
|
|
|
|
|
|