Implement showing/updating/removing tracker bindings

This commit is contained in:
schroda
2024-03-17 18:42:48 +01:00
parent 66c57a542b
commit 5dbf1ce30c
10 changed files with 556 additions and 17 deletions

View File

@@ -189,6 +189,9 @@ import {
TrackerSearchQueryVariables,
TrackerBindMutation,
TrackerBindMutationVariables,
TrackerUpdateBindMutation,
TrackerUpdateBindMutationVariables,
UpdateTrackInput,
} from '@/lib/graphql/generated/graphql.ts';
import { GET_GLOBAL_METADATAS } from '@/lib/graphql/queries/GlobalMetadataQuery.ts';
import { SET_GLOBAL_METADATA } from '@/lib/graphql/mutations/GlobalMetadataMutation.ts';
@@ -275,6 +278,7 @@ import {
TRACKER_LOGIN_CREDENTIALS,
TRACKER_LOGIN_OAUTH,
TRACKER_LOGOUT,
TRACKER_UPDATE_BIND,
} from '@/lib/graphql/mutations/TrackerMutation.ts';
enum GQLMethod {
@@ -2416,6 +2420,19 @@ export class RequestManager {
): AbortableApolloUseMutationResponse<TrackerBindMutation, TrackerBindMutationVariables> {
return this.doRequest(GQLMethod.USE_MUTATION, TRACKER_BIND, undefined, options);
}
public updateTrackerBind(
id: number,
patch: Omit<UpdateTrackInput, 'clientMutationId' | 'recordId'>,
options?: MutationOptions<TrackerUpdateBindMutation, TrackerUpdateBindMutationVariables>,
): AbortableApolloMutationResponse<TrackerUpdateBindMutation> {
return this.doRequest(
GQLMethod.MUTATION,
TRACKER_UPDATE_BIND,
{ input: { ...patch, recordId: id } },
{ refetchQueries: patch.unbind ? [GET_MANGA, GET_CATEGORY_MANGAS] : undefined, ...options },
);
}
}
export const requestManager = new RequestManager();