@@ -4,29 +4,34 @@ import { campuses, exams, semesters, slots, years } from "@/components/select_op
4
4
import { connectToDatabase } from "@/lib/mongoose" ;
5
5
import cloudinary from "cloudinary" ;
6
6
import { type ICourses , type CloudinaryUploadResult } from "@/interface" ;
7
- import { PaperAdmin } from "@/db/papers" ;
7
+ import Paper , { PaperAdmin } from "@/db/papers" ;
8
8
import axios from "axios" ;
9
9
// TODO: REMOVE THUMBNAIL FROM admin-buffer DB
10
+
10
11
const cloudinaryConfig1 = cloudinary . v2 ;
11
12
cloudinaryConfig1 . config ( {
12
13
cloud_name : process . env . NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME_1 ,
13
14
api_key : process . env . CLOUDINARY_API_KEY_1 ,
14
15
api_secret : process . env . CLOUDINARY_SECRET_1 ,
15
16
} ) ;
16
17
17
- // Config 2: Secondary Cloudinary account
18
18
const cloudinaryConfig2 = cloudinary . v2 ;
19
19
cloudinaryConfig2 . config ( {
20
20
cloud_name : process . env . NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME_2 ,
21
21
api_key : process . env . CLOUDINARY_API_KEY_2 ,
22
22
api_secret : process . env . CLOUDINARY_SECRET_2 ,
23
23
} ) ;
24
+ const cloudinaryConfigs = [ cloudinaryConfig1 , cloudinaryConfig2 ] ;
24
25
25
26
export async function POST ( req : Request ) {
26
27
try {
27
28
if ( ! process . env . NEXT_PUBLIC_CLOUDINARY_UPLOAD_PRESET ) {
28
29
return NextResponse . json ( { message : "ServerMisconfig" } , { status : 500 } ) ;
29
30
}
31
+ const count : number = await Paper . countDocuments ( ) ;
32
+
33
+ const configIndex = cloudinaryConfigs [ count % 2 ] ;
34
+ cloudinary . v2 . config ( configIndex ) ;
30
35
const uploadPreset = process . env . NEXT_PUBLIC_CLOUDINARY_UPLOAD_PRESET ;
31
36
const formData = await req . formData ( ) ;
32
37
const files : File [ ] = formData . getAll ( "files" ) as File [ ] ;
0 commit comments