1- import { PrismaClient } from "@prisma/client" ;
1+ import { PrismaClient , TimeSlotStatus } from "@prisma/client" ;
22import { NextRequest , NextResponse } from "next/server" ;
33import { sendGroupSignupMail } from "../../../lib/groupSignupMail" ;
44
@@ -47,10 +47,11 @@ export const POST = async (request: NextRequest) => {
4747export const GET = async ( request : NextRequest ) => {
4848 const { searchParams } = new URL ( request . url ) ;
4949
50- const userId = searchParams . get ( "userId" ) ;
51- const date = searchParams . get ( "date" ) ;
50+ const userId : string | undefined = searchParams . get ( "userId" ) || undefined ;
51+ const date : string | undefined = searchParams . get ( "date" ) || undefined ;
52+ const status : string | undefined = searchParams . get ( "status" ) || undefined ;
5253
53- if ( ! userId || ! date ) {
54+ if ( ! userId && ! date && ! status ) {
5455 return NextResponse . json (
5556 {
5657 code : "BAD_REQUEST" ,
@@ -60,23 +61,19 @@ export const GET = async (request: NextRequest) => {
6061 ) ;
6162 }
6263
63- const [ year , month , day ] = date . split ( "-" ) . map ( Number ) ;
64- const start = new Date ( year , month - 1 , day ) ;
65- start . setHours ( 0 , 0 , 0 , 0 ) ;
66- const end = new Date ( start ) ;
67- end . setDate ( start . getDate ( ) + 1 ) ;
68-
6964 try {
7065 const slots = await prisma . timeSlot . findMany ( {
7166 where : {
72- userId,
73- date : {
74- gte : start ,
75- lt : end ,
76- } ,
67+ ...( userId && { userId } ) ,
68+ ...( date && {
69+ date : {
70+ gte : new Date ( date ) ,
71+ lt : new Date ( new Date ( date ) . setDate ( new Date ( date ) . getDate ( ) + 1 ) ) ,
72+ } ,
73+ } ) ,
74+ ...( status && { status : status as TimeSlotStatus } ) ,
7775 } ,
7876 } ) ;
79-
8077 return NextResponse . json (
8178 {
8279 code : "SUCCESS" ,
0 commit comments