Reduce requested tracker data in queries

This commit is contained in:
schroda
2024-07-04 22:00:39 +02:00
parent 7556ea9b38
commit 83be995fb8
20 changed files with 289 additions and 154 deletions

View File

@@ -8,6 +8,8 @@
import gql from 'graphql-tag';
import { SOURCE_BASE_FIELDS } from '@/lib/graphql/fragments/SourceFragments.ts';
import { TRACKER_BIND_FIELDS } from '@/lib/graphql/fragments/TrackFragments.ts';
import { TRACK_RECORD_BIND_FIELDS } from '@/lib/graphql/fragments/TrackRecordFragments.ts';
export const PAGE_INFO = gql`
fragment PAGE_INFO on PageInfo {
@@ -52,53 +54,14 @@ export const UPDATER_CATEGORY_FIELDS = gql`
}
`;
export const FULL_TRACKER_FIELDS = gql`
fragment FULL_TRACKER_FIELDS on TrackerType {
id
name
authUrl
icon
supportsTrackDeletion
isLoggedIn
isTokenExpired
scores
statuses {
name
value
}
}
`;
export const BASE_TRACK_RECORD_FIELDS = gql`
fragment BASE_TRACK_RECORD_FIELDS on TrackRecordType {
id
status
lastChapterRead
totalChapters
score
displayScore
startDate
finishDate
}
`;
export const QUERY_TRACK_RECORD_FIELDS = gql`
${BASE_TRACK_RECORD_FIELDS}
fragment QUERY_TRACK_RECORD_FIELDS on TrackRecordType {
...BASE_TRACK_RECORD_FIELDS
title
remoteUrl
remoteId
}
`;
export const FULL_TRACK_RECORD_FIELDS = gql`
${QUERY_TRACK_RECORD_FIELDS}
${FULL_TRACKER_FIELDS}
${TRACK_RECORD_BIND_FIELDS}
${TRACKER_BIND_FIELDS}
fragment FULL_TRACK_RECORD_FIELDS on TrackRecordType {
...QUERY_TRACK_RECORD_FIELDS
...TRACK_RECORD_BIND_FIELDS
tracker {
...FULL_TRACKER_FIELDS
...TRACKER_BIND_FIELDS
}
}
`;

View File

@@ -0,0 +1,54 @@
/*
* Copyright (C) Contributors to the Suwayomi project
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
*/
import gql from 'graphql-tag';
import { TRACK_RECORD_BIND_FIELDS } from '@/lib/graphql/fragments/TrackRecordFragments.ts';
export const TRACKER_BASE_FIELDS = gql`
fragment TRACKER_BASE_FIELDS on TrackerType {
id
name
icon
isLoggedIn
isTokenExpired
}
`;
export const TRACKER_SETTING_FIELDS = gql`
${TRACKER_BASE_FIELDS}
fragment TRACKER_SETTING_FIELDS on TrackerType {
...TRACKER_BASE_FIELDS
authUrl
}
`;
export const TRACKER_BIND_FIELDS = gql`
${TRACKER_BASE_FIELDS}
${TRACK_RECORD_BIND_FIELDS}
fragment TRACKER_BIND_FIELDS on TrackerType {
...TRACKER_BASE_FIELDS
icon
supportsTrackDeletion
scores
statuses {
name
value
}
trackRecords {
nodes {
...TRACK_RECORD_BIND_FIELDS
}
}
}
`;

View File

@@ -0,0 +1,40 @@
/*
* Copyright (C) Contributors to the Suwayomi project
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
*/
import gql from 'graphql-tag';
export const TRACK_RECORD_SEARCH_FIELDS = gql`
fragment TRACK_RECORD_SEARCH_FIELDS on TrackSearchType {
id
remoteId
title
trackingUrl
coverUrl
publishingType
startDate
publishingStatus
summary
}
`;
export const TRACK_RECORD_BIND_FIELDS = gql`
fragment TRACK_RECORD_BIND_FIELDS on TrackRecordType {
id
remoteId
trackerId
remoteUrl
title
status
lastChapterRead
totalChapters
score
displayScore
startDate
finishDate
}
`;

File diff suppressed because one or more lines are too long

View File

@@ -7,8 +7,8 @@
*/
import gql from 'graphql-tag';
import { BASE_TRACK_RECORD_FIELDS } from '@/lib/graphql/Fragments';
import { CHAPTER_LIST_FIELDS } from '@/lib/graphql/fragments/ChapterFragments.ts';
import { TRACK_RECORD_BIND_FIELDS } from '@/lib/graphql/fragments/TrackRecordFragments.ts';
export const DELETE_CHAPTER_METADATA = gql`
mutation DELETE_CHAPTER_METADATA($input: DeleteChapterMetaInput!) {
@@ -90,7 +90,8 @@ export const SET_CHAPTER_METADATA = gql`
`;
export const UPDATE_CHAPTER = gql`
${BASE_TRACK_RECORD_FIELDS}
${TRACK_RECORD_BIND_FIELDS}
mutation UPDATE_CHAPTER(
$input: UpdateChapterInput!
$getBookmarked: Boolean!
@@ -141,14 +142,15 @@ export const UPDATE_CHAPTER = gql`
}
trackProgress(input: { mangaId: $mangaId }) @include(if: $trackProgress) {
trackRecords {
...BASE_TRACK_RECORD_FIELDS
...TRACK_RECORD_BIND_FIELDS
}
}
}
`;
export const UPDATE_CHAPTERS = gql`
${BASE_TRACK_RECORD_FIELDS}
${TRACK_RECORD_BIND_FIELDS}
mutation UPDATE_CHAPTERS(
$input: UpdateChaptersInput!
$getBookmarked: Boolean!
@@ -199,7 +201,7 @@ export const UPDATE_CHAPTERS = gql`
}
trackProgress(input: { mangaId: $mangaId }) @include(if: $trackProgress) {
trackRecords {
...BASE_TRACK_RECORD_FIELDS
...TRACK_RECORD_BIND_FIELDS
}
}
}

View File

@@ -7,52 +7,54 @@
*/
import gql from 'graphql-tag';
import { BASE_TRACK_RECORD_FIELDS, QUERY_TRACK_RECORD_FIELDS } from '@/lib/graphql/Fragments.ts';
import { TRACK_RECORD_BIND_FIELDS } from '@/lib/graphql/fragments/TrackRecordFragments.ts';
import { TRACKER_SETTING_FIELDS } from '@/lib/graphql/fragments/TrackFragments.ts';
export const TRACKER_LOGIN_OAUTH = gql`
${TRACKER_SETTING_FIELDS}
mutation TRACKER_LOGIN_OAUTH($input: LoginTrackerOAuthInput!) {
loginTrackerOAuth(input: $input) {
tracker {
id
isLoggedIn
authUrl
...TRACKER_SETTING_FIELDS
}
}
}
`;
export const TRACKER_LOGIN_CREDENTIALS = gql`
${TRACKER_SETTING_FIELDS}
mutation TRACKER_LOGIN_CREDENTIALS($input: LoginTrackerCredentialsInput!) {
loginTrackerCredentials(input: $input) {
isLoggedIn
tracker {
id
isLoggedIn
authUrl
...TRACKER_SETTING_FIELDS
}
}
}
`;
export const TRACKER_LOGOUT = gql`
${TRACKER_SETTING_FIELDS}
mutation TRACKER_LOGOUT($trackerId: Int!) {
logoutTracker(input: { trackerId: $trackerId }) {
clientMutationId
tracker {
id
isLoggedIn
authUrl
...TRACKER_SETTING_FIELDS
}
}
}
`;
export const TRACKER_BIND = gql`
${QUERY_TRACK_RECORD_FIELDS}
${TRACK_RECORD_BIND_FIELDS}
mutation TRACKER_BIND($mangaId: Int!, $remoteId: LongString!, $trackerId: Int!) {
bindTrack(input: { mangaId: $mangaId, remoteId: $remoteId, trackerId: $trackerId }) {
trackRecord {
...QUERY_TRACK_RECORD_FIELDS
...TRACK_RECORD_BIND_FIELDS
tracker {
id
}
@@ -90,11 +92,12 @@ export const TRACKER_UNBIND = gql`
`;
export const TRACKER_UPDATE_BIND = gql`
${QUERY_TRACK_RECORD_FIELDS}
${TRACK_RECORD_BIND_FIELDS}
mutation TRACKER_UPDATE_BIND($input: UpdateTrackInput!) {
updateTrack(input: $input) {
trackRecord {
...QUERY_TRACK_RECORD_FIELDS
...TRACK_RECORD_BIND_FIELDS
manga {
id
trackRecords {
@@ -110,11 +113,12 @@ export const TRACKER_UPDATE_BIND = gql`
`;
export const TRACKER_FETCH_BIND = gql`
${BASE_TRACK_RECORD_FIELDS}
${TRACK_RECORD_BIND_FIELDS}
mutation TRACKER_FETCH_BIND($recordId: Int!) {
fetchTrack(input: { recordId: $recordId }) {
trackRecord {
...BASE_TRACK_RECORD_FIELDS
...TRACK_RECORD_BIND_FIELDS
}
}
}

View File

@@ -7,39 +7,51 @@
*/
import gql from 'graphql-tag';
import { FULL_TRACKER_FIELDS, PAGE_INFO } from '@/lib/graphql/Fragments.ts';
import { PAGE_INFO } from '@/lib/graphql/Fragments.ts';
import { TRACKER_BIND_FIELDS, TRACKER_SETTING_FIELDS } from '@/lib/graphql/fragments/TrackFragments.ts';
import { TRACK_RECORD_SEARCH_FIELDS } from '@/lib/graphql/fragments/TrackRecordFragments.ts';
export const GET_TRACKERS = gql`
export const GET_TRACKERS_SETTINGS = gql`
${PAGE_INFO}
${FULL_TRACKER_FIELDS}
query GET_TRACKERS {
${TRACKER_SETTING_FIELDS}
query GET_TRACKERS_SETTINGS {
trackers {
totalCount
pageInfo {
...PAGE_INFO
}
nodes {
...FULL_TRACKER_FIELDS
...TRACKER_SETTING_FIELDS
}
}
}
`;
export const GET_TRACKERS_BIND = gql`
${PAGE_INFO}
${TRACKER_BIND_FIELDS}
query GET_TRACKERS_BIND {
trackers {
totalCount
pageInfo {
...PAGE_INFO
}
nodes {
...TRACKER_BIND_FIELDS
}
}
}
`;
export const TRACKER_SEARCH = gql`
${TRACK_RECORD_SEARCH_FIELDS}
query TRACKER_SEARCH($query: String!, $trackerId: Int!) {
searchTracker(input: { query: $query, trackerId: $trackerId }) {
trackSearches {
id
title
coverUrl
publishingStatus
publishingType
remoteId
startDate
summary
totalChapters
trackerId
trackingUrl
...TRACK_RECORD_SEARCH_FIELDS
}
}
}