Implement "import history" in import page
This commit is contained in:
@ -32,27 +32,150 @@ import type {
|
||||
AddLocalTrackRequest,
|
||||
PlaylistTrackResponse,
|
||||
TrackBulkReorderRequest,
|
||||
TrackResponse
|
||||
TrackResponse,
|
||||
YoutubeTrackRequest
|
||||
} from '.././models';
|
||||
|
||||
import { axiosInstance } from '.././axios-instance';
|
||||
import addYoutubeTrackMutator from '.././axios-instance';
|
||||
import addYoutubeTrack1Mutator from '.././axios-instance';
|
||||
import addLocalTrackMutator from '.././axios-instance';
|
||||
import bulkReorderMutator from '.././axios-instance';
|
||||
import getPlaylistTracksMutator from '.././axios-instance';
|
||||
|
||||
|
||||
type SecondParameter<T extends (...args: never) => unknown> = Parameters<T>[1];
|
||||
|
||||
|
||||
|
||||
export const addLocalTrack = (
|
||||
export const addYoutubeTrack = (
|
||||
playlistId: MaybeRef<number>,
|
||||
youtubeTrackRequest: MaybeRef<YoutubeTrackRequest>,
|
||||
options?: SecondParameter<typeof addYoutubeTrackMutator>,signal?: AbortSignal
|
||||
) => {
|
||||
playlistId = unref(playlistId);
|
||||
youtubeTrackRequest = unref(youtubeTrackRequest);
|
||||
|
||||
return addYoutubeTrackMutator<TrackResponse[]>(
|
||||
{url: `/playlist/${playlistId}/track/youtube`, method: 'POST',
|
||||
headers: {'Content-Type': 'application/json', },
|
||||
data: youtubeTrackRequest, signal
|
||||
},
|
||||
options);
|
||||
}
|
||||
|
||||
|
||||
|
||||
export const getAddYoutubeTrackMutationOptions = <TError = unknown,
|
||||
TContext = unknown>(options?: { mutation?:UseMutationOptions<Awaited<ReturnType<typeof addYoutubeTrack>>, TError,{playlistId: number;data: YoutubeTrackRequest}, TContext>, request?: SecondParameter<typeof addYoutubeTrackMutator>}
|
||||
): UseMutationOptions<Awaited<ReturnType<typeof addYoutubeTrack>>, TError,{playlistId: number;data: YoutubeTrackRequest}, TContext> => {
|
||||
|
||||
const mutationKey = ['addYoutubeTrack'];
|
||||
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 addYoutubeTrack>>, {playlistId: number;data: YoutubeTrackRequest}> = (props) => {
|
||||
const {playlistId,data} = props ?? {};
|
||||
|
||||
return addYoutubeTrack(playlistId,data,requestOptions)
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
return { mutationFn, ...mutationOptions }}
|
||||
|
||||
export type AddYoutubeTrackMutationResult = NonNullable<Awaited<ReturnType<typeof addYoutubeTrack>>>
|
||||
export type AddYoutubeTrackMutationBody = YoutubeTrackRequest
|
||||
export type AddYoutubeTrackMutationError = unknown
|
||||
|
||||
export const useAddYoutubeTrack = <TError = unknown,
|
||||
TContext = unknown>(options?: { mutation?:UseMutationOptions<Awaited<ReturnType<typeof addYoutubeTrack>>, TError,{playlistId: number;data: YoutubeTrackRequest}, TContext>, request?: SecondParameter<typeof addYoutubeTrackMutator>}
|
||||
, queryClient?: QueryClient): UseMutationReturnType<
|
||||
Awaited<ReturnType<typeof addYoutubeTrack>>,
|
||||
TError,
|
||||
{playlistId: number;data: YoutubeTrackRequest},
|
||||
TContext
|
||||
> => {
|
||||
|
||||
const mutationOptions = getAddYoutubeTrackMutationOptions(options);
|
||||
|
||||
return useMutation(mutationOptions, queryClient);
|
||||
}
|
||||
export const addYoutubeTrack1 = (
|
||||
playlistId: MaybeRef<number>,
|
||||
sourceId: MaybeRef<number>,
|
||||
options?: SecondParameter<typeof addYoutubeTrack1Mutator>,signal?: AbortSignal
|
||||
) => {
|
||||
playlistId = unref(playlistId);
|
||||
sourceId = unref(sourceId);
|
||||
|
||||
return addYoutubeTrack1Mutator<TrackResponse[]>(
|
||||
{url: `/playlist/${playlistId}/track/youtube/refresh/${sourceId}`, method: 'POST', signal
|
||||
},
|
||||
options);
|
||||
}
|
||||
|
||||
|
||||
|
||||
export const getAddYoutubeTrack1MutationOptions = <TError = unknown,
|
||||
TContext = unknown>(options?: { mutation?:UseMutationOptions<Awaited<ReturnType<typeof addYoutubeTrack1>>, TError,{playlistId: number;sourceId: number}, TContext>, request?: SecondParameter<typeof addYoutubeTrack1Mutator>}
|
||||
): UseMutationOptions<Awaited<ReturnType<typeof addYoutubeTrack1>>, TError,{playlistId: number;sourceId: number}, TContext> => {
|
||||
|
||||
const mutationKey = ['addYoutubeTrack1'];
|
||||
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 addYoutubeTrack1>>, {playlistId: number;sourceId: number}> = (props) => {
|
||||
const {playlistId,sourceId} = props ?? {};
|
||||
|
||||
return addYoutubeTrack1(playlistId,sourceId,requestOptions)
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
return { mutationFn, ...mutationOptions }}
|
||||
|
||||
export type AddYoutubeTrack1MutationResult = NonNullable<Awaited<ReturnType<typeof addYoutubeTrack1>>>
|
||||
|
||||
export type AddYoutubeTrack1MutationError = unknown
|
||||
|
||||
export const useAddYoutubeTrack1 = <TError = unknown,
|
||||
TContext = unknown>(options?: { mutation?:UseMutationOptions<Awaited<ReturnType<typeof addYoutubeTrack1>>, TError,{playlistId: number;sourceId: number}, TContext>, request?: SecondParameter<typeof addYoutubeTrack1Mutator>}
|
||||
, queryClient?: QueryClient): UseMutationReturnType<
|
||||
Awaited<ReturnType<typeof addYoutubeTrack1>>,
|
||||
TError,
|
||||
{playlistId: number;sourceId: number},
|
||||
TContext
|
||||
> => {
|
||||
|
||||
const mutationOptions = getAddYoutubeTrack1MutationOptions(options);
|
||||
|
||||
return useMutation(mutationOptions, queryClient);
|
||||
}
|
||||
export const addLocalTrack = (
|
||||
playlistId: MaybeRef<number>,
|
||||
addLocalTrackRequest: MaybeRef<AddLocalTrackRequest>,
|
||||
options?: SecondParameter<typeof axiosInstance>,signal?: AbortSignal
|
||||
options?: SecondParameter<typeof addLocalTrackMutator>,signal?: AbortSignal
|
||||
) => {
|
||||
playlistId = unref(playlistId);
|
||||
addLocalTrackRequest = unref(addLocalTrackRequest);
|
||||
const formData = new FormData();
|
||||
formData.append(`source`, addLocalTrackRequest.source)
|
||||
|
||||
return axiosInstance<TrackResponse>(
|
||||
return addLocalTrackMutator<TrackResponse>(
|
||||
{url: `/playlist/${playlistId}/track/local`, method: 'POST',
|
||||
headers: {'Content-Type': 'multipart/form-data', },
|
||||
data: formData, signal
|
||||
@ -63,7 +186,7 @@ formData.append(`source`, addLocalTrackRequest.source)
|
||||
|
||||
|
||||
export const getAddLocalTrackMutationOptions = <TError = unknown,
|
||||
TContext = unknown>(options?: { mutation?:UseMutationOptions<Awaited<ReturnType<typeof addLocalTrack>>, TError,{playlistId: number;data: AddLocalTrackRequest}, TContext>, request?: SecondParameter<typeof axiosInstance>}
|
||||
TContext = unknown>(options?: { mutation?:UseMutationOptions<Awaited<ReturnType<typeof addLocalTrack>>, TError,{playlistId: number;data: AddLocalTrackRequest}, TContext>, request?: SecondParameter<typeof addLocalTrackMutator>}
|
||||
): UseMutationOptions<Awaited<ReturnType<typeof addLocalTrack>>, TError,{playlistId: number;data: AddLocalTrackRequest}, TContext> => {
|
||||
|
||||
const mutationKey = ['addLocalTrack'];
|
||||
@ -92,7 +215,7 @@ const {mutation: mutationOptions, request: requestOptions} = options ?
|
||||
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>}
|
||||
TContext = unknown>(options?: { mutation?:UseMutationOptions<Awaited<ReturnType<typeof addLocalTrack>>, TError,{playlistId: number;data: AddLocalTrackRequest}, TContext>, request?: SecondParameter<typeof addLocalTrackMutator>}
|
||||
, queryClient?: QueryClient): UseMutationReturnType<
|
||||
Awaited<ReturnType<typeof addLocalTrack>>,
|
||||
TError,
|
||||
@ -107,12 +230,12 @@ const {mutation: mutationOptions, request: requestOptions} = options ?
|
||||
export const bulkReorder = (
|
||||
playlistId: MaybeRef<number>,
|
||||
trackBulkReorderRequest: MaybeRef<TrackBulkReorderRequest>,
|
||||
options?: SecondParameter<typeof axiosInstance>,signal?: AbortSignal
|
||||
options?: SecondParameter<typeof bulkReorderMutator>,signal?: AbortSignal
|
||||
) => {
|
||||
playlistId = unref(playlistId);
|
||||
trackBulkReorderRequest = unref(trackBulkReorderRequest);
|
||||
|
||||
return axiosInstance<void>(
|
||||
return bulkReorderMutator<void>(
|
||||
{url: `/playlist/${playlistId}/bulk-reorder`, method: 'POST',
|
||||
headers: {'Content-Type': 'application/json', },
|
||||
data: trackBulkReorderRequest, signal
|
||||
@ -123,7 +246,7 @@ trackBulkReorderRequest = unref(trackBulkReorderRequest);
|
||||
|
||||
|
||||
export const getBulkReorderMutationOptions = <TError = unknown,
|
||||
TContext = unknown>(options?: { mutation?:UseMutationOptions<Awaited<ReturnType<typeof bulkReorder>>, TError,{playlistId: number;data: TrackBulkReorderRequest}, TContext>, request?: SecondParameter<typeof axiosInstance>}
|
||||
TContext = unknown>(options?: { mutation?:UseMutationOptions<Awaited<ReturnType<typeof bulkReorder>>, TError,{playlistId: number;data: TrackBulkReorderRequest}, TContext>, request?: SecondParameter<typeof bulkReorderMutator>}
|
||||
): UseMutationOptions<Awaited<ReturnType<typeof bulkReorder>>, TError,{playlistId: number;data: TrackBulkReorderRequest}, TContext> => {
|
||||
|
||||
const mutationKey = ['bulkReorder'];
|
||||
@ -152,7 +275,7 @@ const {mutation: mutationOptions, request: requestOptions} = options ?
|
||||
export type BulkReorderMutationError = unknown
|
||||
|
||||
export const useBulkReorder = <TError = unknown,
|
||||
TContext = unknown>(options?: { mutation?:UseMutationOptions<Awaited<ReturnType<typeof bulkReorder>>, TError,{playlistId: number;data: TrackBulkReorderRequest}, TContext>, request?: SecondParameter<typeof axiosInstance>}
|
||||
TContext = unknown>(options?: { mutation?:UseMutationOptions<Awaited<ReturnType<typeof bulkReorder>>, TError,{playlistId: number;data: TrackBulkReorderRequest}, TContext>, request?: SecondParameter<typeof bulkReorderMutator>}
|
||||
, queryClient?: QueryClient): UseMutationReturnType<
|
||||
Awaited<ReturnType<typeof bulkReorder>>,
|
||||
TError,
|
||||
@ -166,11 +289,11 @@ const {mutation: mutationOptions, request: requestOptions} = options ?
|
||||
}
|
||||
export const getPlaylistTracks = (
|
||||
playlistId: MaybeRef<number>,
|
||||
options?: SecondParameter<typeof axiosInstance>,signal?: AbortSignal
|
||||
options?: SecondParameter<typeof getPlaylistTracksMutator>,signal?: AbortSignal
|
||||
) => {
|
||||
playlistId = unref(playlistId);
|
||||
|
||||
return axiosInstance<PlaylistTrackResponse[]>(
|
||||
return getPlaylistTracksMutator<PlaylistTrackResponse[]>(
|
||||
{url: `/playlist/${playlistId}/tracks`, method: 'GET', signal
|
||||
},
|
||||
options);
|
||||
@ -186,7 +309,7 @@ export const getGetPlaylistTracksQueryKey = (playlistId?: MaybeRef<number>,) =>
|
||||
}
|
||||
|
||||
|
||||
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>}
|
||||
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 getPlaylistTracksMutator>}
|
||||
) => {
|
||||
|
||||
const {query: queryOptions, request: requestOptions} = options ?? {};
|
||||
@ -210,7 +333,7 @@ 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>}
|
||||
playlistId: MaybeRef<number>, options?: { query?:Partial<UseQueryOptions<Awaited<ReturnType<typeof getPlaylistTracks>>, TError, TData>>, request?: SecondParameter<typeof getPlaylistTracksMutator>}
|
||||
, queryClient?: QueryClient
|
||||
): UseQueryReturnType<TData, TError> & { queryKey: DataTag<QueryKey, TData, TError> } {
|
||||
|
||||
|
||||
Reference in New Issue
Block a user