diff options
| author | Factiven <[email protected]> | 2023-04-17 13:33:37 +0700 |
|---|---|---|
| committer | Factiven <[email protected]> | 2023-04-17 13:33:37 +0700 |
| commit | 545d8a3473823f0a86cad3c177dbbb4ebb794a75 (patch) | |
| tree | 1606111911ea31c8fd8f9560dade41f5fedd6520 /pages/api | |
| parent | Update 7th (diff) | |
| download | moopa-545d8a3473823f0a86cad3c177dbbb4ebb794a75.tar.xz moopa-545d8a3473823f0a86cad3c177dbbb4ebb794a75.zip | |
Snapshot Moopa v3.2
Diffstat (limited to 'pages/api')
| -rw-r--r-- | pages/api/get-media.js | 78 | ||||
| -rw-r--r-- | pages/api/get-user.js | 4 | ||||
| -rw-r--r-- | pages/api/getUser.js | 20 |
3 files changed, 81 insertions, 21 deletions
diff --git a/pages/api/get-media.js b/pages/api/get-media.js new file mode 100644 index 0000000..7c45d03 --- /dev/null +++ b/pages/api/get-media.js @@ -0,0 +1,78 @@ +// pages/api/anime-media-list.js + +export default async function handler(req, res) { + const { username, status } = req.body; + + try { + const response = await fetch("https://graphql.anilist.co/", { + method: "POST", + headers: { + "Content-Type": "application/json", + }, + body: JSON.stringify({ + query: ` + query ($username: String, $status: MediaListStatus) { + MediaListCollection(userName: $username, type: ANIME, status: $status, sort: SCORE_DESC) { + user { + id + name + about (asHtml: true) + createdAt + avatar { + large + } + statistics { + anime { + count + episodesWatched + meanScore + minutesWatched + } + } + bannerImage + mediaListOptions { + animeList { + sectionOrder + } + } + } + lists { + status + name + entries { + id + mediaId + status + progress + score + media { + id + status + title { + english + romaji + } + episodes + coverImage { + large + } + } + } + } + } + } + `, + variables: { + username, + status, + }, + }), + }); + + const data = await response.json(); + res.status(200).json(data.data.MediaListCollection); + } catch (error) { + console.error(error); + res.status(500).json({ message: "Internal server error" }); + } +} diff --git a/pages/api/get-user.js b/pages/api/get-user.js index 7df10a6..36bc974 100644 --- a/pages/api/get-user.js +++ b/pages/api/get-user.js @@ -7,7 +7,9 @@ export async function getUser(userName) { const collection = db.collection("users"); const user = await collection.findOne({ name: userName }); - user._id = String(user._id); + if (user && user._id) { + user._id = String(user._id); + } return user; } diff --git a/pages/api/getUser.js b/pages/api/getUser.js deleted file mode 100644 index 7df10a6..0000000 --- a/pages/api/getUser.js +++ /dev/null @@ -1,20 +0,0 @@ -import clientPromise from "../../lib/mongodb"; - -export async function getUser(userName) { - const client = await clientPromise; - const db = client.db("authbase"); - - const collection = db.collection("users"); - const user = await collection.findOne({ name: userName }); - - user._id = String(user._id); - - return user; -} - -export default async function handler(req, res) { - const { userName } = req.query; - const user = await getUser(userName); - - res.status(200).json(user); -} |