aboutsummaryrefslogtreecommitdiff
path: root/src/routes/api/preferences
diff options
context:
space:
mode:
authorFuwn <[email protected]>2024-02-17 21:50:17 -0800
committerFuwn <[email protected]>2024-02-17 21:50:17 -0800
commit4f07a27df74775e35775d34e800abfd683c5fa86 (patch)
tree2a7fb42fd15f1193c3c14a6535691730fe428565 /src/routes/api/preferences
parentfix(preferences): return preferences (diff)
downloaddue.moe-4f07a27df74775e35775d34e800abfd683c5fa86.tar.xz
due.moe-4f07a27df74775e35775d34e800abfd683c5fa86.zip
feat(badges): optionally hide missing badges
Diffstat (limited to 'src/routes/api/preferences')
-rw-r--r--src/routes/api/preferences/+server.ts18
-rw-r--r--src/routes/api/preferences/badges/+server.ts31
2 files changed, 48 insertions, 1 deletions
diff --git a/src/routes/api/preferences/+server.ts b/src/routes/api/preferences/+server.ts
index a36bd236..0aaaa52e 100644
--- a/src/routes/api/preferences/+server.ts
+++ b/src/routes/api/preferences/+server.ts
@@ -1,4 +1,4 @@
-import { getUserPreferences } from '$lib/Database/userPreferences';
+import { getUserPreferences, toggleHideMissingBadges } from '$lib/Database/userPreferences';
export const GET = async ({ url }) =>
Response.json(await getUserPreferences(Number(url.searchParams.get('id') || 0)), {
@@ -6,3 +6,19 @@ export const GET = async ({ url }) =>
'Access-Control-Allow-Origin': 'https://due.moe'
}
});
+
+export const PUT = async ({ url }) => {
+ if (url.searchParams.get('toggleHideMissingBadges') !== null) {
+ return Response.json(await toggleHideMissingBadges(Number(url.searchParams.get('id') || 0)), {
+ headers: {
+ 'Access-Control-Allow-Origin': 'https://due.moe'
+ }
+ });
+ }
+
+ return Response.json(await getUserPreferences(Number(url.searchParams.get('id') || 0)), {
+ headers: {
+ 'Access-Control-Allow-Origin': 'https://due.moe'
+ }
+ });
+};
diff --git a/src/routes/api/preferences/badges/+server.ts b/src/routes/api/preferences/badges/+server.ts
new file mode 100644
index 00000000..24d4924b
--- /dev/null
+++ b/src/routes/api/preferences/badges/+server.ts
@@ -0,0 +1,31 @@
+import { userIdentity } from '$lib/Data/AniList/identity';
+import { toggleHideMissingBadges } from '$lib/Database/userPreferences';
+
+const unauthorised = new Response('Unauthorised', { status: 401 });
+
+export const PUT = async ({ cookies }) => {
+ const userCookie = cookies.get('user');
+
+ if (!userCookie) return unauthorised;
+
+ const user = JSON.parse(userCookie);
+
+ return Response.json(
+ await toggleHideMissingBadges(
+ (
+ await userIdentity({
+ tokenType: user['token_type'],
+ expiresIn: user['expires_in'],
+ accessToken: user['access_token'],
+ refreshToken: user['refresh_token']
+ })
+ ).id
+ ),
+ {
+ headers: {
+ method: 'PUT',
+ 'Access-Control-Allow-Origin': 'https://due.moe'
+ }
+ }
+ );
+};