diff options
Diffstat (limited to 'src/graphql/anime')
| -rw-r--r-- | src/graphql/anime/index.ts | 4 | ||||
| -rw-r--r-- | src/graphql/anime/resolvers.ts | 48 | ||||
| -rw-r--r-- | src/graphql/anime/schema.graphql | 30 |
3 files changed, 46 insertions, 36 deletions
diff --git a/src/graphql/anime/index.ts b/src/graphql/anime/index.ts index 925a7ece..d5eef7f2 100644 --- a/src/graphql/anime/index.ts +++ b/src/graphql/anime/index.ts @@ -1,4 +1,4 @@ -import typeDefs from './schema.graphql?raw'; -import { resolvers } from './resolvers'; +import typeDefs from "./schema.graphql?raw"; +import { resolvers } from "./resolvers"; export default { typeDefs, resolvers }; diff --git a/src/graphql/anime/resolvers.ts b/src/graphql/anime/resolvers.ts index 5f49b364..2b897eda 100644 --- a/src/graphql/anime/resolvers.ts +++ b/src/graphql/anime/resolvers.ts @@ -1,22 +1,32 @@ -import type { WithIndex } from '../$types'; -import type { Resolvers } from './$types'; +import type { WithIndex } from "../$types"; +import type { Resolvers as RootResolvers } from "../$types"; -export const resolvers: WithIndex<Resolvers> = { - Query: { - Anime: async (_, args) => { - const timezone = args.timezone || 'Asia/Tokyo'; +type AnimeResolvers = Pick< + RootResolvers, + "Query" | "Anime" | "Subtitles" | "SubtitleSchedule" | "Subtitle" +>; - return { - subtitles: { - timezone, - schedule: Object.fromEntries( - Object.entries( - (await (await fetch(`https://subsplease.org/api/?f=schedule&tz=${timezone}`)).json()) - .schedule - ).map(([key, value]) => [key.toLowerCase(), value]) - ) - } - }; - } - } +export const resolvers: WithIndex<AnimeResolvers> = { + Query: { + Anime: async (_, args) => { + const timezone = args.timezone || "Asia/Tokyo"; + + return { + subtitles: { + timezone, + schedule: Object.fromEntries( + Object.entries( + ( + await ( + await fetch( + `https://subsplease.org/api/?f=schedule&tz=${timezone}`, + ) + ).json() + ).schedule, + ).map(([key, value]) => [key.toLowerCase(), value]), + ), + }, + }; + }, + }, }; diff --git a/src/graphql/anime/schema.graphql b/src/graphql/anime/schema.graphql index a0415944..d5774966 100644 --- a/src/graphql/anime/schema.graphql +++ b/src/graphql/anime/schema.graphql @@ -1,29 +1,29 @@ type Query { - Anime(timezone: String): Anime! + Anime(timezone: String): Anime! } type Anime { - subtitles: Subtitles + subtitles: Subtitles } type Subtitles { - timezone: String - schedule: SubtitleSchedule + timezone: String + schedule: SubtitleSchedule } type SubtitleSchedule { - monday: [Subtitle] - tuesday: [Subtitle] - wednesday: [Subtitle] - thursday: [Subtitle] - friday: [Subtitle] - saturday: [Subtitle] - sunday: [Subtitle] + monday: [Subtitle] + tuesday: [Subtitle] + wednesday: [Subtitle] + thursday: [Subtitle] + friday: [Subtitle] + saturday: [Subtitle] + sunday: [Subtitle] } type Subtitle { - title: String - page: String - image_url: String - time: String + title: String + page: String + image_url: String + time: String } |