From 54983835878ab3a17b510216133df5c0d0485f23 Mon Sep 17 00:00:00 2001 From: "Timothy J. Warren" Date: Mon, 22 Feb 2021 15:38:29 -0500 Subject: [PATCH] Update GraphQL schemas --- src/AnimeClient/API/Anilist/schema.graphql | 32 +++- src/AnimeClient/API/Kitsu/schema.graphql | 173 +++++++++------------ 2 files changed, 100 insertions(+), 105 deletions(-) diff --git a/src/AnimeClient/API/Anilist/schema.graphql b/src/AnimeClient/API/Anilist/schema.graphql index 4737470e..dd0295bb 100644 --- a/src/AnimeClient/API/Anilist/schema.graphql +++ b/src/AnimeClient/API/Anilist/schema.graphql @@ -240,6 +240,7 @@ type Character { isFavourite: Boolean! "Media that includes the character" media( + onList: Boolean, "The page" page: Int, "The amount of entries per page, max 25" @@ -855,7 +856,7 @@ type InternalPage { mediaType: MediaType, "The order the results will be returned in" sort: [ReviewSort], - "Filter by media id" + "Filter by user id" userId: Int ): [Review] revisionHistory( @@ -1114,7 +1115,10 @@ type Media { startDate: FuzzyDate stats: MediaStats "The current releasing status of the media" - status: MediaStatus + status( + "Provide 2 to use new version 2 of sources enum" + version: Int + ): MediaStatus "Data and links to legal streaming episodes on external sites" streamingEpisodes: [MediaStreamingEpisode] "The companies who produced the media" @@ -1297,8 +1301,7 @@ type MediaListOptions { sharedTheme: Json @deprecated(reason : "No longer used") "If the shared theme should be used instead of the individual list themes" sharedThemeEnabled: Boolean @deprecated(reason : "No longer used") - "(Site only) If the user should be using legacy css-supporting list versions" - useLegacyLists: Boolean + useLegacyLists: Boolean @deprecated(reason : "No longer used") } "A user's list options for anime or manga lists" @@ -1832,6 +1835,8 @@ type Mutation { rowOrder: String, "The user's list scoring system" scoreFormat: ScoreFormat, + "Timezone offset format: -?HH:MM" + timezone: String, "User's title language" titleLanguage: UserTitleLanguage ): User @@ -2258,7 +2263,7 @@ type Page { mediaType: MediaType, "The order the results will be returned in" sort: [ReviewSort], - "Filter by media id" + "Filter by user id" userId: Int ): [Review] staff( @@ -2837,7 +2842,7 @@ type Query { mediaType: MediaType, "The order the results will be returned in" sort: [ReviewSort], - "Filter by media id" + "Filter by user id" userId: Int ): Review "Site statistics query" @@ -3127,6 +3132,15 @@ type SiteTrendEdge { "Voice actors or production staff" type Staff { + "Media the actor voiced characters in. (Same data as characters with media as node instead of characters)" + characterMedia( + onList: Boolean, + "The page" + page: Int, + "The amount of entries per page, max 25" + perPage: Int, + sort: [MediaSort] + ): MediaConnection "Characters voiced by the actor" characters( "The page" @@ -3160,6 +3174,7 @@ type Staff { staff: Staff "Media where the staff member has a production role" staffMedia( + onList: Boolean, "The page" page: Int, "The amount of entries per page, max 25" @@ -3264,6 +3279,7 @@ type Studio { media( "If the studio was the primary animation studio of the media" isMain: Boolean, + onList: Boolean, "The page" page: Int, "The amount of entries per page, max 25" @@ -3671,6 +3687,8 @@ type UserOptions { notificationOptions: [NotificationOption] "Profile highlight color (blue, purple, pink, orange, red, green, gray)" profileColor: String + "The user's timezone offset (Auth user only)" + timezone: String "The language the user wants to see media titles in" titleLanguage: UserTitleLanguage } @@ -4058,6 +4076,8 @@ enum MediaStatus { CANCELLED "Has completed and is no longer being released" FINISHED + "Version 2 only. Is currently paused from releasing and will resume at a later date" + HIATUS "To be released at a later date" NOT_YET_RELEASED "Currently releasing" diff --git a/src/AnimeClient/API/Kitsu/schema.graphql b/src/AnimeClient/API/Kitsu/schema.graphql index 3d572188..b34ba5f6 100644 --- a/src/AnimeClient/API/Kitsu/schema.graphql +++ b/src/AnimeClient/API/Kitsu/schema.graphql @@ -20,16 +20,6 @@ interface AmountConsumed { units: Int! } -"Generic error fields used by all errors." -interface Base { - "The error code." - code: String - "A description of the error" - message: String! - "Which input value this error came from" - path: [String!] -} - "Generic Category Breakdown based on Media" interface CategoryBreakdown { "A Map of category_id -> count for all categories present on the library entries" @@ -65,6 +55,16 @@ interface Episodic { totalLength: Int } +"Generic error fields used by all errors." +interface Error { + "The error code." + code: String + "A description of the error" + message: String! + "Which input value this error came from" + path: [String!] +} + "A media in the Kitsu database" interface Media { "The recommended minimum age group for this media" @@ -445,15 +445,13 @@ type AnimeConnection { "Autogenerated return type of AnimeCreate" type AnimeCreatePayload { anime: Anime - "Graphql Errors" - errors: [Generic!] + errors: [Error!] } "Autogenerated return type of AnimeDelete" type AnimeDeletePayload { anime: GenericDelete - "Graphql Errors" - errors: [Generic!] + errors: [Error!] } "An edge in a connection." @@ -464,7 +462,7 @@ type AnimeEdge { node: Anime } -type AnimeMutation { +type AnimeMutations { "Create an Anime." create( "Create an Anime." @@ -485,8 +483,7 @@ type AnimeMutation { "Autogenerated return type of AnimeUpdate" type AnimeUpdatePayload { anime: Anime - "Graphql Errors" - errors: [Generic!] + errors: [Error!] } "Information about a specific Category" @@ -736,15 +733,13 @@ type EpisodeConnection { "Autogenerated return type of EpisodeCreate" type EpisodeCreatePayload { episode: Episode - "Graphql Errors" - errors: [Generic!] + errors: [Error!] } "Autogenerated return type of EpisodeDelete" type EpisodeDeletePayload { episode: GenericDelete - "Graphql Errors" - errors: [Generic!] + errors: [Error!] } "An edge in a connection." @@ -755,7 +750,7 @@ type EpisodeEdge { node: Episode } -type EpisodeMutation { +type EpisodeMutations { "Create an Episode." create( "Create an Episode" @@ -776,8 +771,7 @@ type EpisodeMutation { "Autogenerated return type of EpisodeUpdate" type EpisodeUpdatePayload { episode: Episode - "Graphql Errors" - errors: [Generic!] + errors: [Error!] } "Favorite media, characters, and people for a user" @@ -811,7 +805,7 @@ type FavoriteEdge { node: Favorite } -type Generic implements Base { +type Generic implements Error { "The error code." code: String "A description of the error" @@ -991,15 +985,13 @@ type LibraryEntryConnection { "Autogenerated return type of LibraryEntryCreate" type LibraryEntryCreatePayload { - "Graphql Errors" - errors: [Generic!] + errors: [Error!] libraryEntry: LibraryEntry } "Autogenerated return type of LibraryEntryDelete" type LibraryEntryDeletePayload { - "Graphql Errors" - errors: [Generic!] + errors: [Error!] libraryEntry: GenericDelete } @@ -1011,7 +1003,7 @@ type LibraryEntryEdge { node: LibraryEntry } -type LibraryEntryMutation { +type LibraryEntryMutations { "Create a library entry" create( "Create a Library Entry" @@ -1061,50 +1053,43 @@ type LibraryEntryMutation { "Autogenerated return type of LibraryEntryUpdate" type LibraryEntryUpdatePayload { - "Graphql Errors" - errors: [Generic!] + errors: [Error!] libraryEntry: LibraryEntry } "Autogenerated return type of LibraryEntryUpdateProgressById" type LibraryEntryUpdateProgressByIdPayload { - "Graphql Errors" - errors: [Generic!] + errors: [Error!] libraryEntry: LibraryEntry } "Autogenerated return type of LibraryEntryUpdateProgressByMedia" type LibraryEntryUpdateProgressByMediaPayload { - "Graphql Errors" - errors: [Generic!] + errors: [Error!] libraryEntry: LibraryEntry } "Autogenerated return type of LibraryEntryUpdateRatingById" type LibraryEntryUpdateRatingByIdPayload { - "Graphql Errors" - errors: [Generic!] + errors: [Error!] libraryEntry: LibraryEntry } "Autogenerated return type of LibraryEntryUpdateRatingByMedia" type LibraryEntryUpdateRatingByMediaPayload { - "Graphql Errors" - errors: [Generic!] + errors: [Error!] libraryEntry: LibraryEntry } "Autogenerated return type of LibraryEntryUpdateStatusById" type LibraryEntryUpdateStatusByIdPayload { - "Graphql Errors" - errors: [Generic!] + errors: [Error!] libraryEntry: LibraryEntry } "Autogenerated return type of LibraryEntryUpdateStatusByMedia" type LibraryEntryUpdateStatusByMediaPayload { - "Graphql Errors" - errors: [Generic!] + errors: [Error!] libraryEntry: LibraryEntry } @@ -1145,13 +1130,6 @@ type LibraryEventEdge { node: LibraryEvent } -"Autogenerated return type of LockPost" -type LockPostPayload { - "Graphql Errors" - errors: [Generic!] - post: Post -} - type Manga implements Media & WithTimestamps { "The recommended minimum age group for this media" ageRating: AgeRatingEnum @@ -1361,15 +1339,13 @@ type MappingConnection { "Autogenerated return type of MappingCreate" type MappingCreatePayload { - "Graphql Errors" - errors: [Generic!] + errors: [Error!] mapping: Mapping } "Autogenerated return type of MappingDelete" type MappingDeletePayload { - "Graphql Errors" - errors: [Generic!] + errors: [Error!] mapping: GenericDelete } @@ -1381,7 +1357,7 @@ type MappingEdge { node: Mapping } -type MappingMutation { +type MappingMutations { "Create a Mapping" create( "Create a Mapping" @@ -1401,8 +1377,7 @@ type MappingMutation { "Autogenerated return type of MappingUpdate" type MappingUpdatePayload { - "Graphql Errors" - errors: [Generic!] + errors: [Error!] mapping: Mapping } @@ -1584,12 +1559,12 @@ type MediaStaffEdge { } type Mutation { - anime: AnimeMutation - episode: EpisodeMutation - libraryEntry: LibraryEntryMutation - mapping: MappingMutation - post: PostMutation - pro: ProMutation! + anime: AnimeMutations + episode: EpisodeMutations + libraryEntry: LibraryEntryMutations + mapping: MappingMutations + post: PostMutations + pro: ProMutations! } "Information about pagination in a connection." @@ -1723,32 +1698,54 @@ type PostEdge { node: Post } -type PostMutation { +"Autogenerated return type of PostLock" +type PostLockPayload { + errors: [Error!] + post: Post +} + +type PostMutations { "Lock a Post." lock( "Lock a Post." input: LockInput! - ): LockPostPayload + ): PostLockPayload "Unlock a Post." unlock( "Unlock a Post." input: UnlockInput! - ): UnlockPostPayload + ): PostUnlockPayload } -type ProMutation { +"Autogenerated return type of PostUnlock" +type PostUnlockPayload { + errors: [Error!] + post: Post +} + +type ProMutations { "Set the user's discord tag" setDiscord( "Your discord tag (Name#1234)" discord: String! - ): SetDiscordPayload + ): ProSetDiscordPayload "Set the user's Hall-of-Fame message" setMessage( "The message to set for your Hall of Fame entry" message: String! - ): SetMessagePayload + ): ProSetMessagePayload "End the user's pro subscription" - unsubscribe: UnsubscribePayload + unsubscribe: ProUnsubscribePayload +} + +"Autogenerated return type of ProSetDiscord" +type ProSetDiscordPayload { + discord: String! +} + +"Autogenerated return type of ProSetMessage" +type ProSetMessagePayload { + message: String! } "A subscription to Kitsu PRO" @@ -1763,6 +1760,11 @@ type ProSubscription implements WithTimestamps { updatedAt: ISO8601DateTime! } +"Autogenerated return type of ProUnsubscribe" +type ProUnsubscribePayload { + expiresAt: ISO8601DateTime +} + "A company involved in the creation or localization of media" type Producer implements WithTimestamps { createdAt: ISO8601DateTime! @@ -2223,20 +2225,6 @@ type Session { profile: Profile } -"Autogenerated return type of SetDiscord" -type SetDiscordPayload { - discord: String! - "Graphql Errors" - errors: [Generic!] -} - -"Autogenerated return type of SetMessage" -type SetMessagePayload { - "Graphql Errors" - errors: [Generic!] - message: String! -} - "A link to a user's profile on an external site." type SiteLink implements WithTimestamps { "The user profile the site is linked to." @@ -2349,20 +2337,6 @@ type TitlesList { localized(locales: [String!]): Map! } -"Autogenerated return type of UnlockPost" -type UnlockPostPayload { - "Graphql Errors" - errors: [Generic!] - post: Post -} - -"Autogenerated return type of Unsubscribe" -type UnsubscribePayload { - "Graphql Errors" - errors: [Generic!] - expiresAt: ISO8601DateTime -} - "The media video." type Video implements Streamable & WithTimestamps { createdAt: ISO8601DateTime! @@ -2770,6 +2744,7 @@ input MappingUpdateInput { input TitlesListInput { alternatives: [String!] + canonical: String canonicalLocale: String localized: Map }