From 861c03b85160972431ca9b262345d15edecf9acb Mon Sep 17 00:00:00 2001 From: Fuwn Date: Tue, 24 Oct 2023 17:12:54 -0700 Subject: feat: badge wall --- src/routes/api/badges/add/+server.ts | 23 +++++++++++++++++++++++ src/routes/api/badges/remove/+server.ts | 22 ++++++++++++++++++++++ 2 files changed, 45 insertions(+) create mode 100644 src/routes/api/badges/add/+server.ts create mode 100644 src/routes/api/badges/remove/+server.ts (limited to 'src/routes/api') 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({}); +}; -- cgit v1.2.3 From e61da1367da23c309bd006416d598d861dfcfb2c Mon Sep 17 00:00:00 2001 From: Fuwn Date: Thu, 26 Oct 2023 14:48:00 -0700 Subject: refactor(badges): move to bun:sqlite --- src/routes/api/badges/add/+server.ts | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) (limited to 'src/routes/api') diff --git a/src/routes/api/badges/add/+server.ts b/src/routes/api/badges/add/+server.ts index 6ce9421e..627176a7 100644 --- a/src/routes/api/badges/add/+server.ts +++ b/src/routes/api/badges/add/+server.ts @@ -1,7 +1,7 @@ import { userIdentity } from '$lib/AniList/identity.js'; -import { addUserBadges } from '$lib/userBadgesDatabase.js'; +import { addUserBadge } from '$lib/userBadgesDatabase.js'; -export const POST = async ({ cookies, request }) => { +export const POST = async ({ cookies, url }) => { const userCookie = cookies.get('user'); if (!userCookie) { @@ -15,9 +15,12 @@ export const POST = async ({ cookies, request }) => { accessToken: user['access_token'], refreshToken: user['refresh_token'] }); - const formData = await request.json(); - addUserBadges(identity.id, formData); + addUserBadge(identity.id, { + post: url.searchParams.get('post') || undefined, + image: url.searchParams.get('image') || undefined, + description: url.searchParams.get('description') || undefined + }); return Response.json({}); }; -- cgit v1.2.3