@@ -4,69 +4,78 @@ import cloudinary from "cloudinary";
4
4
import Paper from "@/db/papers" ;
5
5
6
6
export async function POST ( req : Request ) {
7
- try {
8
- await connectToDatabase ( ) ;
9
- const body = ( await req . json ( ) ) as Array < {
10
- url : string ;
11
- slot : string ;
12
- subject : string ;
13
- exam : string ;
14
- year : number ;
15
- } > ;
16
-
17
- const responseArray : { status : string ; url : string ; thumbnailUrl : string } [ ] = [ ] ;
18
-
19
- await Promise . all (
20
- body . map ( async ( paperData ) => {
21
- const { url, slot, subject, exam, year } = paperData ;
22
-
23
- const existingPaper = await Paper . findOne ( {
24
- subject,
25
- slot,
26
- year,
27
- exam,
28
- } ) ;
29
- if ( existingPaper ) {
30
- responseArray . push ( {
31
- status : "Paper already exists" ,
32
- url : "" ,
33
- thumbnailUrl : "" ,
34
- } ) ;
35
- return ;
36
- }
37
-
38
- const thumbnailResponse = cloudinary . v2 . image ( url , { format : "jpg" } ) ;
39
- const thumbnailUrl = thumbnailResponse
40
- . replace ( "pdf" , "jpg" )
41
- . replace ( "upload" , "upload/w_400,h_400,c_fill" )
42
- . replace ( / < i m g s r c = ' | ' \s * \/ > / g, '' ) ;
43
-
44
- const paper = new Paper ( {
45
- finalUrl : url ,
46
- thumbnailUrl,
7
+ try {
8
+ await connectToDatabase ( ) ;
9
+ const body = ( await req . json ( ) ) as Array < {
10
+ url : string ;
11
+ slot : string ;
12
+ subject : string ;
13
+ exam : string ;
14
+ year : number ;
15
+ } > ;
16
+
17
+ const responseArray : {
18
+ status : string ;
19
+ url : string ;
20
+ thumbnailUrl : string ;
21
+ subject : string ;
22
+ slot : string ;
23
+ year : number ;
24
+ } [ ] = [ ] ;
25
+
26
+ await Promise . all (
27
+ body . map ( async ( paperData ) => {
28
+ const { url, slot, subject, exam, year } = paperData ;
29
+
30
+ const existingPaper = await Paper . findOne ( {
31
+ subject,
32
+ slot,
33
+ year,
34
+ exam,
35
+ } ) ;
36
+ if ( existingPaper ) {
37
+ responseArray . push ( {
38
+ status : "Paper already exists" ,
39
+ url : "" ,
40
+ thumbnailUrl : "" ,
47
41
subject,
48
42
slot,
49
43
year,
50
- exam,
51
44
} ) ;
52
-
53
- await paper . save ( ) ;
54
-
55
- responseArray . push ( {
56
- status : "success" ,
57
- url : url ,
58
- thumbnailUrl : thumbnailUrl ,
59
- } ) ;
60
- } ) ,
61
- ) ;
62
-
63
- return NextResponse . json ( responseArray , { status : 201 } ) ;
64
- } catch ( error ) {
65
- console . error ( error ) ;
66
- return NextResponse . json (
67
- { message : "Failed to upload papers" , error } ,
68
- { status : 500 } ,
69
- ) ;
70
- }
45
+ return ;
46
+ }
47
+
48
+ const thumbnailResponse = cloudinary . v2 . image ( url , { format : "jpg" } ) ;
49
+ const thumbnailUrl = thumbnailResponse
50
+ . replace ( "pdf" , "jpg" )
51
+ . replace ( "upload" , "upload/w_400,h_400,c_fill" )
52
+ . replace ( / < i m g s r c = ' | ' \s * \/ > / g, "" ) ;
53
+
54
+ const paper = new Paper ( {
55
+ finalUrl : url ,
56
+ thumbnailUrl,
57
+ subject,
58
+ slot,
59
+ year,
60
+ exam,
61
+ } ) ;
62
+
63
+ await paper . save ( ) ;
64
+
65
+ responseArray . push ( {
66
+ status : "success" ,
67
+ url : url ,
68
+ thumbnailUrl : thumbnailUrl ,
69
+ } ) ;
70
+ } ) ,
71
+ ) ;
72
+
73
+ return NextResponse . json ( responseArray , { status : 201 } ) ;
74
+ } catch ( error ) {
75
+ console . error ( error ) ;
76
+ return NextResponse . json (
77
+ { message : "Failed to upload papers" , error } ,
78
+ { status : 500 } ,
79
+ ) ;
71
80
}
72
-
81
+ }
0 commit comments