1
1
import { NextRequest , NextResponse } from "next/server" ;
2
- import { connectDb } from "@/services " ;
2
+ import { connectDb } from "@/lib " ;
3
3
import Category from "@/models/category" ;
4
4
import { ZodError , z } from "zod" ;
5
5
import User from "@/models/user" ;
6
6
import mongoose from "mongoose" ;
7
+ import { getServerSession } from "next-auth" ;
8
+ import { authConfig } from "@/configs" ;
7
9
8
10
interface NewCategoryRequest {
9
11
name : string ;
10
- user_id : string ;
11
12
}
12
13
13
14
interface MongoError {
@@ -19,12 +20,13 @@ export async function GET(req: NextRequest) {
19
20
await connectDb ( ) ;
20
21
21
22
const { searchParams } = new URL ( req . url ) ;
22
- const userId = searchParams . get ( "userId" ) ;
23
23
const searchQuery = searchParams . get ( "q" ) ;
24
+ const session = await getServerSession ( { ...authConfig } ) ;
25
+ const userId = session ?. user ?. id ;
24
26
25
27
if ( ! userId ) {
26
28
return NextResponse . json (
27
- { success : false , error : "User id is required " } ,
29
+ { success : false , error : "Not authenticated " } ,
28
30
{
29
31
status : 400 ,
30
32
}
@@ -80,15 +82,16 @@ export async function POST(req: NextRequest) {
80
82
await connectDb ( ) ;
81
83
82
84
const body = ( await req . json ( ) ) as NewCategoryRequest ;
85
+ const session = await getServerSession ( { ...authConfig } ) ;
86
+ const userId = session ?. user ?. id ;
83
87
84
88
const parsedBody = z
85
89
. object ( {
86
90
name : z . string ( ) . min ( 1 ) ,
87
- user_id : z . string ( ) ,
88
91
} )
89
92
. parse ( body ) ;
90
93
91
- const user = await User . findById ( body . user_id ) ;
94
+ const user = await User . findById ( userId ) ;
92
95
93
96
if ( ! user ) {
94
97
return NextResponse . json (
@@ -100,7 +103,7 @@ export async function POST(req: NextRequest) {
100
103
) ;
101
104
}
102
105
103
- const category = await Category . create ( { ...parsedBody } ) ;
106
+ const category = await Category . create ( { ...parsedBody , user_id : userId } ) ;
104
107
105
108
return NextResponse . json ( {
106
109
success : true ,
0 commit comments