aboutsummaryrefslogtreecommitdiff
path: root/src/routes/api/badges/+server.ts
diff options
context:
space:
mode:
authorFuwn <[email protected]>2024-10-06 01:41:44 -0700
committerFuwn <[email protected]>2024-10-06 01:41:44 -0700
commita84d9c9f47c7cd1b345d0283bef9f211a9727893 (patch)
tree554827840b67e8a0068e707fad973a8780f47957 /src/routes/api/badges/+server.ts
parentfeat(graphql): add subtitles (diff)
downloaddue.moe-a84d9c9f47c7cd1b345d0283bef9f211a9727893.tar.xz
due.moe-a84d9c9f47c7cd1b345d0283bef9f211a9727893.zip
feat(badges): move badge operations to graphql
Diffstat (limited to 'src/routes/api/badges/+server.ts')
-rw-r--r--src/routes/api/badges/+server.ts257
1 files changed, 128 insertions, 129 deletions
diff --git a/src/routes/api/badges/+server.ts b/src/routes/api/badges/+server.ts
index dfe25e7e..e7a26320 100644
--- a/src/routes/api/badges/+server.ts
+++ b/src/routes/api/badges/+server.ts
@@ -1,150 +1,149 @@
import { userIdentity } from '$lib/Data/AniList/identity';
import {
- removeAllUserBadges,
- removeUserBadge,
- updateUserBadge,
- getUserBadges,
- addUserBadge,
- type Badge,
- migrateCategory,
- setShadowHidden,
- setShadowHiddenBadge,
- incrementClickCount
+ removeAllUserBadges,
+ removeUserBadge,
+ updateUserBadge,
+ getUserBadges,
+ addUserBadge,
+ type Badge,
+ migrateCategory,
+ setShadowHidden,
+ setShadowHiddenBadge,
+ incrementClickCount
} from '$lib/Database/SB/User/badges';
import authorisedJson from '$lib/Data/Static/authorised.json';
const unauthorised = new Response('Unauthorised', { status: 401 });
const badges = async (id: number) =>
- Response.json(await getUserBadges(id), {
- headers: {
- 'Access-Control-Allow-Origin': 'https://due.moe'
- }
- });
+ Response.json(await getUserBadges(id), {
+ headers: {
+ 'Access-Control-Allow-Origin': 'https://due.moe'
+ }
+ });
export const GET = async ({ url }) => {
- return await badges(Number(url.searchParams.get('id') || 0));
+ return await badges(Number(url.searchParams.get('id') || 0));
};
export const DELETE = async ({ url, cookies }) => {
- const userCookie = cookies.get('user');
+ const userCookie = cookies.get('user');
- if (!userCookie) return unauthorised;
+ if (!userCookie) return unauthorised;
- 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 user = JSON.parse(userCookie);
+ const identity = await userIdentity({
+ tokenType: user['token_type'],
+ expiresIn: user['expires_in'],
+ accessToken: user['access_token'],
+ refreshToken: user['refresh_token']
+ });
- if ((url.searchParams.get('prune') || 0) === 'true') {
- await removeAllUserBadges(identity.id);
- } else {
- await removeUserBadge(identity.id, Number(url.searchParams.get('id')));
- }
+ if ((url.searchParams.get('prune') || 0) === 'true') {
+ await removeAllUserBadges(identity.id);
+ } else {
+ await removeUserBadge(identity.id, Number(url.searchParams.get('id')));
+ }
- return await badges(identity.id);
+ return await badges(identity.id);
};
export const PUT = async ({ cookies, url, request }) => {
- if (url.searchParams.get('incrementClickCount') || undefined) {
- await incrementClickCount(Number(url.searchParams.get('incrementClickCount')));
-
- return new Response('Incremented', { status: 200 });
- }
-
- const userCookie = cookies.get('user');
-
- if (!userCookie) return unauthorised;
-
- 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 authorised = authorisedJson.includes(identity.id);
-
- if (url.searchParams.get('shadowHide'))
- setShadowHidden(Number(url.searchParams.get('shadowHide')), authorised);
-
- if (url.searchParams.get('import') || undefined) {
- await Promise.all(
- (await request.json()).map(async (badge: Badge) => await addUserBadge(identity.id, badge))
- );
-
- return await badges(identity.id);
- } else if (url.searchParams.get('migrate') || undefined) {
- await migrateCategory(
- identity.id,
- url.searchParams.get('original') || '',
- url.searchParams.get('new') || ''
- );
-
- return await badges(identity.id);
- }
-
- if (url.searchParams.get('hide') || undefined) {
- const allBadges = await getUserBadges(identity.id);
-
- await Promise.all(
- allBadges
- .filter((badge) => badge.category === (url.searchParams.get('category') || ''))
- .map(async (badge) => {
- await updateUserBadge(identity.id, badge.id as number, {
- ...badge,
- hidden:
- allBadges
- .filter((badge) => badge.category === (url.searchParams.get('category') || ''))
- .filter((badge) => badge.hidden).length >
- allBadges.filter(
- (badge) => badge.category === (url.searchParams.get('category') || '')
- ).length /
- 2
- ? false
- : true
- });
- })
- );
-
- return await badges(identity.id);
- }
-
- if (url.searchParams.get('shadowHideBadge') || undefined) {
- if (!authorised) return unauthorised;
-
- await setShadowHiddenBadge(
- Number(url.searchParams.get('id')),
- Number(url.searchParams.get('shadowHideBadge')),
- url.searchParams.get('status') == 'true' ? false : true
- );
-
- return await badges(Number(url.searchParams.get('id')));
- }
-
- const badge = {
- post: url.searchParams.get('post') || undefined,
- image: url.searchParams.get('image') || undefined,
- description: url.searchParams.get('description') || null,
- time: url.searchParams.get('time') || undefined,
- category: url.searchParams.get('category') || null,
- hidden: url.searchParams.get('hidden') || false,
- source: url.searchParams.get('source') || null,
- designer: url.searchParams.get('designer') || null
- };
-
- if (
- (await getUserBadges(identity.id)).find(
- (badge) => Number(badge.id) === Number(url.searchParams.get('update'))
- )
- ) {
- await updateUserBadge(identity.id, Number(url.searchParams.get('update')), badge as Badge);
- } else {
- await addUserBadge(identity.id, badge as Badge);
- }
-
- return await badges(identity.id);
+ if (url.searchParams.get('incrementClickCount') || undefined) {
+ await incrementClickCount(Number(url.searchParams.get('incrementClickCount')));
+
+ return new Response('Incremented', { status: 200 });
+ }
+
+ const userCookie = cookies.get('user');
+
+ if (!userCookie) return unauthorised;
+
+ 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 authorised = authorisedJson.includes(identity.id);
+
+ if (url.searchParams.get('shadowHide'))
+ setShadowHidden(Number(url.searchParams.get('shadowHide')), authorised);
+
+ if (url.searchParams.get('import') || undefined) {
+ await Promise.all(
+ (await request.json()).map(async (badge: Badge) => await addUserBadge(identity.id, badge))
+ );
+
+ return await badges(identity.id);
+ } else if (url.searchParams.get('migrate') || undefined) {
+ await migrateCategory(
+ identity.id,
+ url.searchParams.get('original') || '',
+ url.searchParams.get('new') || ''
+ );
+
+ return await badges(identity.id);
+ }
+
+ if (url.searchParams.get('hide') || undefined) {
+ const allBadges = await getUserBadges(identity.id);
+
+ await Promise.all(
+ allBadges
+ .filter((badge) => badge.category === (url.searchParams.get('category') || ''))
+ .map(async (badge) => {
+ await updateUserBadge(identity.id, badge.id as number, {
+ ...badge,
+ hidden:
+ allBadges
+ .filter((badge) => badge.category === (url.searchParams.get('category') || ''))
+ .filter((badge) => badge.hidden).length >
+ allBadges.filter(
+ (badge) => badge.category === (url.searchParams.get('category') || '')
+ ).length /
+ 2
+ ? false
+ : true
+ });
+ })
+ );
+
+ return await badges(identity.id);
+ }
+
+ if (url.searchParams.get('shadowHideBadge') || undefined) {
+ if (!authorised) return unauthorised;
+
+ await setShadowHiddenBadge(
+ Number(url.searchParams.get('shadowHideBadge')),
+ url.searchParams.get('status') == 'true' ? false : true
+ );
+
+ return await badges(Number(url.searchParams.get('id')));
+ }
+
+ const badge = {
+ post: url.searchParams.get('post') || undefined,
+ image: url.searchParams.get('image') || undefined,
+ description: url.searchParams.get('description') || null,
+ time: url.searchParams.get('time') || undefined,
+ category: url.searchParams.get('category') || null,
+ hidden: url.searchParams.get('hidden') || false,
+ source: url.searchParams.get('source') || null,
+ designer: url.searchParams.get('designer') || null
+ };
+
+ if (
+ (await getUserBadges(identity.id)).find(
+ (badge) => Number(badge.id) === Number(url.searchParams.get('update'))
+ )
+ ) {
+ await updateUserBadge(identity.id, Number(url.searchParams.get('update')), badge as Badge);
+ } else {
+ await addUserBadge(identity.id, badge as Badge);
+ }
+
+ return await badges(identity.id);
};