Spaces:
Sleeping
Sleeping
| import { getSession } from "auth/server"; | |
| import { UserPreferencesZodSchema } from "app-types/user"; | |
| import { userRepository } from "lib/db/repository"; | |
| import { NextResponse } from "next/server"; | |
| export async function GET() { | |
| try { | |
| const session = await getSession(); | |
| if (!session?.user?.id) { | |
| return NextResponse.json({ error: "Unauthorized" }, { status: 401 }); | |
| } | |
| const preferences = await userRepository.getPreferences(session.user.id); | |
| return NextResponse.json(preferences ?? {}); | |
| } catch (error: any) { | |
| return NextResponse.json( | |
| { error: error.message || "Failed to get preferences" }, | |
| { status: 500 }, | |
| ); | |
| } | |
| } | |
| export async function PUT(request: Request) { | |
| try { | |
| const session = await getSession(); | |
| if (!session?.user?.id) { | |
| return NextResponse.json({ error: "Unauthorized" }, { status: 401 }); | |
| } | |
| const json = await request.json(); | |
| const preferences = UserPreferencesZodSchema.parse(json); | |
| const updatedUser = await userRepository.updatePreferences( | |
| session.user.id, | |
| preferences as any, | |
| ); | |
| return NextResponse.json({ | |
| success: true, | |
| preferences: updatedUser.preferences, | |
| }); | |
| } catch (error: any) { | |
| return NextResponse.json( | |
| { error: error.message || "Failed to update preferences" }, | |
| { status: 500 }, | |
| ); | |
| } | |
| } | |