aboutsummaryrefslogtreecommitdiff
path: root/pages/api
diff options
context:
space:
mode:
authorFactiven <[email protected]>2023-04-17 13:33:37 +0700
committerFactiven <[email protected]>2023-04-17 13:33:37 +0700
commit545d8a3473823f0a86cad3c177dbbb4ebb794a75 (patch)
tree1606111911ea31c8fd8f9560dade41f5fedd6520 /pages/api
parentUpdate 7th (diff)
downloadmoopa-545d8a3473823f0a86cad3c177dbbb4ebb794a75.tar.xz
moopa-545d8a3473823f0a86cad3c177dbbb4ebb794a75.zip
Snapshot Moopa v3.2
Diffstat (limited to 'pages/api')
-rw-r--r--pages/api/get-media.js78
-rw-r--r--pages/api/get-user.js4
-rw-r--r--pages/api/getUser.js20
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);
-}