aboutsummaryrefslogtreecommitdiff
path: root/src/routes/api/preferences/pin/+server.ts
diff options
context:
space:
mode:
authorFuwn <[email protected]>2024-02-17 21:04:59 -0800
committerFuwn <[email protected]>2024-02-17 21:04:59 -0800
commitf1a09f3348cf4dbc7a0fb6116f9f41fcde372f4c (patch)
treebe69710d2dbf59badb9be88a1e6dce3c710d6525 /src/routes/api/preferences/pin/+server.ts
parentfeat(events): avatar for all events (diff)
downloaddue.moe-f1a09f3348cf4dbc7a0fb6116f9f41fcde372f4c.tar.xz
due.moe-f1a09f3348cf4dbc7a0fb6116f9f41fcde372f4c.zip
feat(hololive): move pinned to preferences
Diffstat (limited to 'src/routes/api/preferences/pin/+server.ts')
-rw-r--r--src/routes/api/preferences/pin/+server.ts32
1 files changed, 32 insertions, 0 deletions
diff --git a/src/routes/api/preferences/pin/+server.ts b/src/routes/api/preferences/pin/+server.ts
new file mode 100644
index 00000000..90dfce62
--- /dev/null
+++ b/src/routes/api/preferences/pin/+server.ts
@@ -0,0 +1,32 @@
+import { userIdentity } from '$lib/Data/AniList/identity';
+import { toggleHololiveStreamPinning } from '$lib/Database/userPreferences';
+
+const unauthorised = new Response('Unauthorised', { status: 401 });
+
+export const PUT = async ({ cookies, url }) => {
+ const userCookie = cookies.get('user');
+
+ if (!userCookie) return unauthorised;
+
+ const user = JSON.parse(userCookie);
+
+ return Response.json(
+ await toggleHololiveStreamPinning(
+ (
+ await userIdentity({
+ tokenType: user['token_type'],
+ expiresIn: user['expires_in'],
+ accessToken: user['access_token'],
+ refreshToken: user['refresh_token']
+ })
+ ).id,
+ url.searchParams.get('stream') || ''
+ ),
+ {
+ headers: {
+ method: 'PUT',
+ 'Access-Control-Allow-Origin': 'https://due.moe'
+ }
+ }
+ );
+};