diff options
| author | Fuwn <[email protected]> | 2023-10-24 17:12:54 -0700 |
|---|---|---|
| committer | Fuwn <[email protected]> | 2023-10-24 17:12:54 -0700 |
| commit | 861c03b85160972431ca9b262345d15edecf9acb (patch) | |
| tree | 48bf0a18cebf3c8fb20b774adac7f9c85373a3a2 /src/routes/api | |
| parent | fix(settings): round down chapters hint (diff) | |
| download | due.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.ts | 23 | ||||
| -rw-r--r-- | src/routes/api/badges/remove/+server.ts | 22 |
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({}); +}; |