aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFuwn <[email protected]>2023-10-29 22:21:41 -0700
committerFuwn <[email protected]>2023-10-29 22:21:41 -0700
commitbe28fe2d5805a1231f2ba706fa1cd3580afeef10 (patch)
treef222de12d4f8fde138c0294595eae374ce5c2c72
parentfeat(badges): switch to http get (diff)
downloaddue.moe-be28fe2d5805a1231f2ba706fa1cd3580afeef10.tar.xz
due.moe-be28fe2d5805a1231f2ba706fa1cd3580afeef10.zip
refactor(badges): use http methods
-rw-r--r--src/routes/api/badges/+server.ts52
-rw-r--r--src/routes/api/badges/add/+server.ts26
-rw-r--r--src/routes/api/badges/get/+server.ts5
-rw-r--r--src/routes/api/badges/remove/+server.ts22
-rw-r--r--src/routes/user/[user]/badges/+page.svelte10
5 files changed, 57 insertions, 58 deletions
diff --git a/src/routes/api/badges/+server.ts b/src/routes/api/badges/+server.ts
new file mode 100644
index 00000000..c8a52bcf
--- /dev/null
+++ b/src/routes/api/badges/+server.ts
@@ -0,0 +1,52 @@
+import { userIdentity } from '$lib/AniList/identity.js';
+import { removeUserBadge } from '$lib/userBadgesDatabase.js';
+import { getUserBadges } from '$lib/userBadgesDatabase';
+import { addUserBadge } from '$lib/userBadgesDatabase.js';
+
+export const GET = async ({ url }) => {
+ return Response.json(getUserBadges(Number(url.searchParams.get('id') || 0)));
+};
+
+export const DELETE = 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({});
+};
+
+export const PUT = 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']
+ });
+
+ addUserBadge(identity.id, {
+ post: url.searchParams.get('post') || undefined,
+ image: url.searchParams.get('image') || undefined,
+ description: url.searchParams.get('description') || undefined
+ });
+
+ return Response.json({});
+};
diff --git a/src/routes/api/badges/add/+server.ts b/src/routes/api/badges/add/+server.ts
deleted file mode 100644
index 627176a7..00000000
--- a/src/routes/api/badges/add/+server.ts
+++ /dev/null
@@ -1,26 +0,0 @@
-import { userIdentity } from '$lib/AniList/identity.js';
-import { addUserBadge } from '$lib/userBadgesDatabase.js';
-
-export const POST = 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']
- });
-
- addUserBadge(identity.id, {
- post: url.searchParams.get('post') || undefined,
- image: url.searchParams.get('image') || undefined,
- description: url.searchParams.get('description') || undefined
- });
-
- return Response.json({});
-};
diff --git a/src/routes/api/badges/get/+server.ts b/src/routes/api/badges/get/+server.ts
deleted file mode 100644
index efef70e9..00000000
--- a/src/routes/api/badges/get/+server.ts
+++ /dev/null
@@ -1,5 +0,0 @@
-import { getUserBadges } from '$lib/userBadgesDatabase';
-
-export const GET = async ({ url }) => {
- return Response.json(getUserBadges(Number(url.searchParams.get('id') || 0)));
-};
diff --git a/src/routes/api/badges/remove/+server.ts b/src/routes/api/badges/remove/+server.ts
deleted file mode 100644
index 8b05369a..00000000
--- a/src/routes/api/badges/remove/+server.ts
+++ /dev/null
@@ -1,22 +0,0 @@
-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({});
-};
diff --git a/src/routes/user/[user]/badges/+page.svelte b/src/routes/user/[user]/badges/+page.svelte
index 649b0de7..d48cad64 100644
--- a/src/routes/user/[user]/badges/+page.svelte
+++ b/src/routes/user/[user]/badges/+page.svelte
@@ -16,7 +16,7 @@
onMount(async () => {
// socket.on('badges', (message) => (badges = message));
- badges = await (await fetch(`/api/badges/get?id=${(await user(data.username)).id}`)).json();
+ badges = await (await fetch(`/api/badges?id=${(await user(data.username)).id}`)).json();
if (data.user) {
currentUserIdentity = userIdentity(data.user);
@@ -50,11 +50,11 @@
}
fetch(
- `/api/badges/add?image=${encodeURIComponent(imageURL.value)}&post=${encodeURIComponent(
+ `/api/badges?image=${encodeURIComponent(imageURL.value)}&post=${encodeURIComponent(
activityURL.value
)}&description=${encodeURIComponent(description.value)}`,
{
- method: 'POST'
+ method: 'PUT'
}
).then(() => {
error = null;
@@ -65,8 +65,8 @@
};
const removeBadge = (badge: Badge) => {
- fetch(`/api/badges/remove?id=${badge.id}`, {
- method: 'POST'
+ fetch(`/api/badges?id=${badge.id}`, {
+ method: 'DELETE'
}).then(() => {
(document.querySelector(`#badge-${badge.id}`) as HTMLAnchorElement).style.display = 'none';
});