Skip to content

Commit 2c2064f

Browse files
bulk upload
1 parent f905f31 commit 2c2064f

File tree

1 file changed

+70
-61
lines changed
  • src/app/api/admin/bulk-upload-pdf

1 file changed

+70
-61
lines changed

src/app/api/admin/bulk-upload-pdf/route.ts

Lines changed: 70 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -4,69 +4,78 @@ import cloudinary from "cloudinary";
44
import Paper from "@/db/papers";
55

66
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(/<img src='|'\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: "",
4741
subject,
4842
slot,
4943
year,
50-
exam,
5144
});
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(/<img src='|'\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+
);
7180
}
72-
81+
}

0 commit comments

Comments
 (0)