aboutsummaryrefslogtreecommitdiff
path: root/src/routes/api
diff options
context:
space:
mode:
authorFuwn <[email protected]>2023-10-24 17:12:54 -0700
committerFuwn <[email protected]>2023-10-24 17:12:54 -0700
commit861c03b85160972431ca9b262345d15edecf9acb (patch)
tree48bf0a18cebf3c8fb20b774adac7f9c85373a3a2 /src/routes/api
parentfix(settings): round down chapters hint (diff)
downloaddue.moe-861c03b85160972431ca9b262345d15edecf9acb.tar.xz
due.moe-861c03b85160972431ca9b262345d15edecf9acb.zip
feat: badge wall
Diffstat (limited to 'src/routes/api')
-rw-r--r--src/routes/api/badges/add/+server.ts23
-rw-r--r--src/routes/api/badges/remove/+server.ts22
2 files changed, 45 insertions, 0 deletions
diff --git a/src/routes/api/badges/add/+server.ts b/src/routes/api/badges/add/+server.ts
new file mode 100644
index 00000000..6ce9421e
--- /dev/null
+++ b/src/routes/api/badges/add/+server.ts
@@ -0,0 +1,23 @@
+import { userIdentity } from '$lib/AniList/identity.js';
+import { addUserBadges } from '$lib/userBadgesDatabase.js';
+
+export const POST = async ({ cookies, request }) => {
+ const userCookie = cookies.get('user');
+
+ if (!userCookie) {
+ return new Response('Unauthenticated', { status: 401 });
+ }
+
+ const user = JSON.parse(userCookie);
+ const identity = await userIdentity({
+ tokenType: user['token_type'],
+ expiresIn: user['expires_in'],
+ accessToken: user['access_token'],
+ refreshToken: user['refresh_token']
+ });
+ const formData = await request.json();
+
+ addUserBadges(identity.id, formData);
+
+ return Response.json({});
+};
diff --git a/src/routes/api/badges/remove/+server.ts b/src/routes/api/badges/remove/+server.ts
new file mode 100644
index 00000000..8b05369a
--- /dev/null
+++ b/src/routes/api/badges/remove/+server.ts
@@ -0,0 +1,22 @@
+import { userIdentity } from '$lib/AniList/identity.js';
+import { removeUserBadge } from '$lib/userBadgesDatabase.js';
+
+export const POST = async ({ url, cookies }) => {
+ const userCookie = cookies.get('user');
+
+ if (!userCookie) {
+ return new Response('Unauthenticated', { status: 401 });
+ }
+
+ const user = JSON.parse(userCookie);
+ const identity = await userIdentity({
+ tokenType: user['token_type'],
+ expiresIn: user['expires_in'],
+ accessToken: user['access_token'],
+ refreshToken: user['refresh_token']
+ });
+
+ removeUserBadge(identity.id, Number(url.searchParams.get('id')));
+
+ return Response.json({});
+};