37
apps/web/src/app/api/reviews/[weekStart]/route.ts
Executable file
37
apps/web/src/app/api/reviews/[weekStart]/route.ts
Executable file
@@ -0,0 +1,37 @@
|
||||
import { handleApi } from "@/lib/api";
|
||||
import {
|
||||
getWeeklyReview,
|
||||
generateWeeklyReview,
|
||||
setReviewIntention,
|
||||
} from "@/lib/services/explorations";
|
||||
import { requireUser } from "@/lib/services/user";
|
||||
|
||||
export async function GET(
|
||||
_request: Request,
|
||||
{ params }: { params: Promise<{ weekStart: string }> }
|
||||
) {
|
||||
const { weekStart } = await params;
|
||||
return handleApi(async () => {
|
||||
const { user } = await requireUser();
|
||||
return getWeeklyReview(user.id, weekStart);
|
||||
});
|
||||
}
|
||||
|
||||
export async function POST(
|
||||
request: Request,
|
||||
{ params }: { params: Promise<{ weekStart: string }> }
|
||||
) {
|
||||
const { weekStart } = await params;
|
||||
const body = await request.json();
|
||||
return handleApi(async () => {
|
||||
const { user } = await requireUser();
|
||||
if (body.action === "generate") {
|
||||
return generateWeeklyReview(user.id, weekStart);
|
||||
}
|
||||
if (body.intention) {
|
||||
await setReviewIntention(user.id, weekStart, body.intention);
|
||||
return { ok: true };
|
||||
}
|
||||
throw new Error("Unknown action");
|
||||
});
|
||||
}
|
||||
Reference in New Issue
Block a user