36 lines
1.2 KiB
JavaScript
36 lines
1.2 KiB
JavaScript
import { Elysia } from "elysia";
|
|
import prisma from "../lib/prisma";
|
|
export const mediaRoute = new Elysia({ prefix: "/media" })
|
|
.get("/", async () => {
|
|
const media = await prisma.media.findMany({
|
|
orderBy: { createdAt: "desc" }
|
|
});
|
|
const BACKEND_PUBLIC_URL = process.env.BACKEND_PUBLIC_URL || "http://localhost:3051";
|
|
return media.map(m => ({
|
|
...m,
|
|
url: `${BACKEND_PUBLIC_URL}${m.path}`
|
|
}));
|
|
})
|
|
.delete("/:id", async ({ params, set }) => {
|
|
try {
|
|
const mediaId = parseInt(params.id);
|
|
const media = await prisma.media.findUnique({
|
|
where: { id: mediaId }
|
|
});
|
|
if (!media) {
|
|
set.status = 404;
|
|
return { error: "Media not found" };
|
|
}
|
|
await prisma.media.delete({
|
|
where: { id: mediaId }
|
|
});
|
|
// We are not removing the physical file right now, but could be added later if needed.
|
|
return { success: true, message: "Media deleted successfully" };
|
|
}
|
|
catch (err) {
|
|
console.error("[Media] Delete Error:", err);
|
|
set.status = 500;
|
|
return { error: "Failed to delete media" };
|
|
}
|
|
});
|
|
//# sourceMappingURL=media.js.map
|