From 863d27123dde581712ad40ad5a036cf4c8641d03 Mon Sep 17 00:00:00 2001 From: Harshit Date: Fri, 25 Apr 2025 17:19:27 +0530 Subject: [PATCH 1/2] enhancement: masked cloudinary urls --- next.config.js | 17 +++++++++++++++ src/app/api/paper-by-id/[id]/route.ts | 30 --------------------------- src/components/Card.tsx | 22 ++++++++++++++------ 3 files changed, 33 insertions(+), 36 deletions(-) delete mode 100644 src/app/api/paper-by-id/[id]/route.ts diff --git a/next.config.js b/next.config.js index 1badc1a..57e4ef9 100644 --- a/next.config.js +++ b/next.config.js @@ -19,6 +19,23 @@ const config = { }); return config; }, + async rewrites() { + return [ + + { + source: "/1/:path*", + destination: + `https://res.cloudinary.com/${process.env.NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME_1}/image/upload/w_400,h_400,c_fill/:path*`, + }, + { + source: "/2/:path*", + destination: + `https://res.cloudinary.com/${process.env.NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME_2}/image/upload/w_400,h_400,c_fill/:path*`, + }, + + ]; + }, + }; export default config; diff --git a/src/app/api/paper-by-id/[id]/route.ts b/src/app/api/paper-by-id/[id]/route.ts deleted file mode 100644 index 09a0ebb..0000000 --- a/src/app/api/paper-by-id/[id]/route.ts +++ /dev/null @@ -1,30 +0,0 @@ -import { NextResponse } from "next/server"; -import { connectToDatabase } from "@/lib/mongoose"; -import Paper from "@/db/papers"; -import { Types } from "mongoose"; - -export async function GET(req: Request, { params }: { params: { id: string } }) { - try { - await connectToDatabase(); - - const { id } = params; - - if (!Types.ObjectId.isValid(id)) { - return NextResponse.json({ message: "Invalid paper ID" }, { status: 400 }); - } - - const paper = await Paper.findById(id); - - if (!paper) { - return NextResponse.json({ message: "Paper not found" }, { status: 404 }); - } - - return NextResponse.json(paper, { status: 200 }); - } catch (error) { - console.error(error); - return NextResponse.json( - { message: "Failed to fetch paper", error }, - { status: 500 }, - ); - } -} diff --git a/src/components/Card.tsx b/src/components/Card.tsx index 260e9ba..d7fd6d8 100644 --- a/src/components/Card.tsx +++ b/src/components/Card.tsx @@ -21,6 +21,7 @@ interface CardProps { const Card = ({ paper, onSelect, isSelected }: CardProps) => { const [checked, setChecked] = useState(isSelected); + const [fileName, setFileName] = useState(""); useEffect(() => { setChecked(isSelected); @@ -59,19 +60,28 @@ const Card = ({ paper, onSelect, isSelected }: CardProps) => { return newChecked; }); }; - + const url = paper.thumbnailUrl; + const urlArr = url.split("/") const paperLink = `/paper/${paper._id}`; - + useEffect(()=>{ + if(url.includes("/papers")){ + setFileName(`/1/${urlArr[urlArr.length-3] + "/" +urlArr[urlArr.length-2] +"/"+urlArr[urlArr.length-1]}`) + + return + } + setFileName(`/2/${urlArr[urlArr.length-2] +"/"+urlArr[urlArr.length-1]}`) + + }, []) return (
{paper.subject} {
-
+
{extractBracketContent(paper.subject)}
@@ -115,7 +125,7 @@ const Card = ({ paper, onSelect, isSelected }: CardProps) => {
-
+
Date: Fri, 25 Apr 2025 17:24:16 +0530 Subject: [PATCH 2/2] restored one deleted file --- src/app/api/paper-by-id/[id]/route.ts | 30 +++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 src/app/api/paper-by-id/[id]/route.ts diff --git a/src/app/api/paper-by-id/[id]/route.ts b/src/app/api/paper-by-id/[id]/route.ts new file mode 100644 index 0000000..c132649 --- /dev/null +++ b/src/app/api/paper-by-id/[id]/route.ts @@ -0,0 +1,30 @@ +import { NextResponse } from "next/server"; +import { connectToDatabase } from "@/lib/mongoose"; +import Paper from "@/db/papers"; +import { Types } from "mongoose"; + +export async function GET(req: Request, { params }: { params: { id: string } }) { + try { + await connectToDatabase(); + + const { id } = params; + + if (!Types.ObjectId.isValid(id)) { + return NextResponse.json({ message: "Invalid paper ID" }, { status: 400 }); + } + + const paper = await Paper.findById(id); + + if (!paper) { + return NextResponse.json({ message: "Paper not found" }, { status: 404 }); + } + + return NextResponse.json(paper, { status: 200 }); + } catch (error) { + console.error(error); + return NextResponse.json( + { message: "Failed to fetch paper", error }, + { status: 500 }, + ); + } +} \ No newline at end of file