feat: create route to return title information
Summary: Test Plan:
This commit is contained in:
32
src/controllers/title/anilist.ts
Normal file
32
src/controllers/title/anilist.ts
Normal file
@@ -0,0 +1,32 @@
|
||||
import { graphql } from "gql.tada";
|
||||
import { GraphQLClient } from "graphql-request";
|
||||
|
||||
import type { Title } from "~/types/title";
|
||||
|
||||
import { MediaFragment } from "./mediaFragment";
|
||||
|
||||
const GetTitleQuery = graphql(
|
||||
`
|
||||
query GetTitle($id: Int!) {
|
||||
Media(id: $id) {
|
||||
...Media
|
||||
}
|
||||
}
|
||||
`,
|
||||
[MediaFragment],
|
||||
);
|
||||
|
||||
export async function fetchTitleFromAnilist(
|
||||
id: number,
|
||||
token: string | undefined,
|
||||
): Promise<Title | undefined> {
|
||||
const client = new GraphQLClient("https://graphql.anilist.co/");
|
||||
const headers = new Headers();
|
||||
if (token) {
|
||||
headers.append("Authorization", `Bearer ${token}`);
|
||||
}
|
||||
|
||||
return client
|
||||
.request(GetTitleQuery, { id }, headers)
|
||||
.then((data) => data?.Media ?? undefined);
|
||||
}
|
||||
Reference in New Issue
Block a user