Update backend API schema
This commit is contained in:
167
app/composeables/api/track-controller/track-controller.ts
Normal file
167
app/composeables/api/track-controller/track-controller.ts
Normal file
@ -0,0 +1,167 @@
|
||||
/**
|
||||
* 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 {
|
||||
computed,
|
||||
unref
|
||||
} from 'vue';
|
||||
import type {
|
||||
MaybeRef
|
||||
} from 'vue';
|
||||
|
||||
import type {
|
||||
AddLocalTrackRequest,
|
||||
PlaylistTrackResponse,
|
||||
TrackResponse
|
||||
} from '.././models';
|
||||
|
||||
import { axiosInstance } from '.././axios-instance';
|
||||
|
||||
|
||||
type SecondParameter<T extends (...args: never) => unknown> = Parameters<T>[1];
|
||||
|
||||
|
||||
|
||||
export const addLocalTrack = (
|
||||
playlistId: MaybeRef<number>,
|
||||
addLocalTrackRequest: MaybeRef<AddLocalTrackRequest>,
|
||||
options?: SecondParameter<typeof axiosInstance>,signal?: AbortSignal
|
||||
) => {
|
||||
playlistId = unref(playlistId);
|
||||
addLocalTrackRequest = unref(addLocalTrackRequest);
|
||||
const formData = new FormData();
|
||||
formData.append(`source`, addLocalTrackRequest.source)
|
||||
|
||||
return axiosInstance<TrackResponse>(
|
||||
{url: `/playlist/${playlistId}/track/local`, method: 'POST',
|
||||
headers: {'Content-Type': 'multipart/form-data', },
|
||||
data: formData, signal
|
||||
},
|
||||
options);
|
||||
}
|
||||
|
||||
|
||||
|
||||
export const getAddLocalTrackMutationOptions = <TError = unknown,
|
||||
TContext = unknown>(options?: { mutation?:UseMutationOptions<Awaited<ReturnType<typeof addLocalTrack>>, TError,{playlistId: number;data: AddLocalTrackRequest}, TContext>, request?: SecondParameter<typeof axiosInstance>}
|
||||
): UseMutationOptions<Awaited<ReturnType<typeof addLocalTrack>>, TError,{playlistId: number;data: AddLocalTrackRequest}, TContext> => {
|
||||
|
||||
const mutationKey = ['addLocalTrack'];
|
||||
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 addLocalTrack>>, {playlistId: number;data: AddLocalTrackRequest}> = (props) => {
|
||||
const {playlistId,data} = props ?? {};
|
||||
|
||||
return addLocalTrack(playlistId,data,requestOptions)
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
return { mutationFn, ...mutationOptions }}
|
||||
|
||||
export type AddLocalTrackMutationResult = NonNullable<Awaited<ReturnType<typeof addLocalTrack>>>
|
||||
export type AddLocalTrackMutationBody = AddLocalTrackRequest
|
||||
export type AddLocalTrackMutationError = unknown
|
||||
|
||||
export const useAddLocalTrack = <TError = unknown,
|
||||
TContext = unknown>(options?: { mutation?:UseMutationOptions<Awaited<ReturnType<typeof addLocalTrack>>, TError,{playlistId: number;data: AddLocalTrackRequest}, TContext>, request?: SecondParameter<typeof axiosInstance>}
|
||||
, queryClient?: QueryClient): UseMutationReturnType<
|
||||
Awaited<ReturnType<typeof addLocalTrack>>,
|
||||
TError,
|
||||
{playlistId: number;data: AddLocalTrackRequest},
|
||||
TContext
|
||||
> => {
|
||||
|
||||
const mutationOptions = getAddLocalTrackMutationOptions(options);
|
||||
|
||||
return useMutation(mutationOptions, queryClient);
|
||||
}
|
||||
export const getPlaylistTracks = (
|
||||
playlistId: MaybeRef<number>,
|
||||
options?: SecondParameter<typeof axiosInstance>,signal?: AbortSignal
|
||||
) => {
|
||||
playlistId = unref(playlistId);
|
||||
|
||||
return axiosInstance<PlaylistTrackResponse[]>(
|
||||
{url: `/playlist/${playlistId}/tracks`, method: 'GET', signal
|
||||
},
|
||||
options);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
export const getGetPlaylistTracksQueryKey = (playlistId?: MaybeRef<number>,) => {
|
||||
return [
|
||||
'playlist',playlistId,'tracks'
|
||||
] as const;
|
||||
}
|
||||
|
||||
|
||||
export const getGetPlaylistTracksQueryOptions = <TData = Awaited<ReturnType<typeof getPlaylistTracks>>, TError = unknown>(playlistId: MaybeRef<number>, options?: { query?:Partial<UseQueryOptions<Awaited<ReturnType<typeof getPlaylistTracks>>, TError, TData>>, request?: SecondParameter<typeof axiosInstance>}
|
||||
) => {
|
||||
|
||||
const {query: queryOptions, request: requestOptions} = options ?? {};
|
||||
|
||||
const queryKey = getGetPlaylistTracksQueryKey(playlistId);
|
||||
|
||||
|
||||
|
||||
const queryFn: QueryFunction<Awaited<ReturnType<typeof getPlaylistTracks>>> = ({ signal }) => getPlaylistTracks(playlistId, requestOptions, signal);
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
return { queryKey, queryFn, enabled: computed(() => !!(unref(playlistId))), ...queryOptions} as UseQueryOptions<Awaited<ReturnType<typeof getPlaylistTracks>>, TError, TData>
|
||||
}
|
||||
|
||||
export type GetPlaylistTracksQueryResult = NonNullable<Awaited<ReturnType<typeof getPlaylistTracks>>>
|
||||
export type GetPlaylistTracksQueryError = unknown
|
||||
|
||||
|
||||
|
||||
export function useGetPlaylistTracks<TData = Awaited<ReturnType<typeof getPlaylistTracks>>, TError = unknown>(
|
||||
playlistId: MaybeRef<number>, options?: { query?:Partial<UseQueryOptions<Awaited<ReturnType<typeof getPlaylistTracks>>, TError, TData>>, request?: SecondParameter<typeof axiosInstance>}
|
||||
, queryClient?: QueryClient
|
||||
): UseQueryReturnType<TData, TError> & { queryKey: DataTag<QueryKey, TData, TError> } {
|
||||
|
||||
const queryOptions = getGetPlaylistTracksQueryOptions(playlistId,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;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user