aboutsummaryrefslogtreecommitdiff
path: root/src/routes/api
diff options
context:
space:
mode:
Diffstat (limited to 'src/routes/api')
-rw-r--r--src/routes/api/badges/+server.ts40
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,