import { safeUserIdentity } from "$lib/Data/AniList/identity"; import { setUserSubscription } from "$lib/Database/SB/User/notifications"; import { decodeAuthCookieOrNull } from "$lib/Effect/authCookie"; import { decodeRequestJsonOrThrow } from "$lib/Effect/requestBody"; import { Schema } from "effect"; const unauthorised = new Response("Unauthorised", { status: 401 }); export const POST = async ({ cookies, request, url }) => { const userCookie = cookies.get("user"); const fingerprint = url.searchParams.get("p"); if (!userCookie || !fingerprint) return unauthorised; const user = decodeAuthCookieOrNull(userCookie); if (!user) return unauthorised; const userId = (await safeUserIdentity(user))?.id; if (!userId) return unauthorised; await setUserSubscription( userId, (await decodeRequestJsonOrThrow( request, Schema.Record(Schema.String, Schema.Unknown), )) as unknown as JSON, fingerprint, ); return new Response(null, { status: 200 }); };