mirror of
https://github.com/soconnor0919/hristudio.git
synced 2025-12-12 07:04:44 -05:00
52 lines
1.4 KiB
TypeScript
52 lines
1.4 KiB
TypeScript
import { eq } from "drizzle-orm";
|
|
import { NextResponse } from "next/server";
|
|
import { auth } from "@clerk/nextjs/server";
|
|
import { db } from "~/db";
|
|
import { participants } from "~/db/schema";
|
|
|
|
export async function GET(request: Request) {
|
|
const { userId } = await auth();
|
|
|
|
if (!userId) {
|
|
return new NextResponse("Unauthorized", { status: 401 });
|
|
}
|
|
|
|
const url = new URL(request.url);
|
|
const studyId = url.searchParams.get("studyId");
|
|
|
|
if (!studyId) {
|
|
return new NextResponse("Study ID is required", { status: 400 });
|
|
}
|
|
|
|
const participantList = await db
|
|
.select()
|
|
.from(participants)
|
|
.where(eq(participants.studyId, parseInt(studyId)));
|
|
|
|
return NextResponse.json(participantList);
|
|
}
|
|
|
|
export async function POST(request: Request) {
|
|
const { userId } = await auth();
|
|
|
|
if (!userId) {
|
|
return new NextResponse("Unauthorized", { status: 401 });
|
|
}
|
|
|
|
const { name, studyId } = await request.json();
|
|
|
|
try {
|
|
const participant = await db
|
|
.insert(participants)
|
|
.values({
|
|
name,
|
|
studyId,
|
|
})
|
|
.returning();
|
|
|
|
return NextResponse.json(participant[0]);
|
|
} catch (error) {
|
|
console.error("Error adding participant:", error);
|
|
return new NextResponse("Internal Server Error", { status: 500 });
|
|
}
|
|
} |