diff options
Diffstat (limited to 'src/routes/api')
| -rw-r--r-- | src/routes/api/badges/+server.ts | 40 |
1 files changed, 38 insertions, 2 deletions
diff --git a/src/routes/api/badges/+server.ts b/src/routes/api/badges/+server.ts index d06be6cd..fc5a4d0a 100644 --- a/src/routes/api/badges/+server.ts +++ b/src/routes/api/badges/+server.ts @@ -1,5 +1,5 @@ import { userIdentity } from '$lib/AniList/identity'; -import { removeUserBadge } from '$lib/Database/badges'; +import { removeUserBadge, updateUserBadge } from '$lib/Database/badges'; import { getUserBadges } from '$lib/Database/badges'; import { addUserBadge } from '$lib/Database/badges'; @@ -42,7 +42,43 @@ export const PUT = async ({ cookies, url }) => { refreshToken: user['refresh_token'] }); - addUserBadge(identity.id, { + if ( + getUserBadges(identity.id).find((badge) => badge.id === Number(url.searchParams.get('update'))) + ) { + updateUserBadge(identity.id, Number(url.searchParams.get('update')), { + post: url.searchParams.get('post') || undefined, + image: url.searchParams.get('image') || undefined, + description: url.searchParams.get('description') || undefined, + time: url.searchParams.get('time') || undefined + }); + } else { + addUserBadge(identity.id, { + post: url.searchParams.get('post') || undefined, + image: url.searchParams.get('image') || undefined, + description: url.searchParams.get('description') || undefined, + time: url.searchParams.get('time') || undefined + }); + } + + return Response.json({}); +}; + +export const PATCH = async ({ cookies, url }) => { + 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'] + }); + + updateUserBadge(identity.id, Number(url.searchParams.get('id')), { post: url.searchParams.get('post') || undefined, image: url.searchParams.get('image') || undefined, description: url.searchParams.get('description') || undefined, |