22 lines
771 B
TypeScript
22 lines
771 B
TypeScript
import { NextResponse } from "next/server";
|
|
|
|
import { requireAdmin } from "@/lib/auth/server";
|
|
import { uploadPublicMedia } from "@/lib/media/repository";
|
|
|
|
export async function POST(request: Request) {
|
|
const admin = await requireAdmin();
|
|
const form = await request.formData();
|
|
const file = form.get("file");
|
|
if (!(file instanceof File)) {
|
|
return NextResponse.json({ error: "กรุณาเลือกไฟล์รูปภาพ" }, { status: 400 });
|
|
}
|
|
try {
|
|
return NextResponse.json(await uploadPublicMedia(file, admin.user.id), { status: 201 });
|
|
} catch (cause) {
|
|
return NextResponse.json(
|
|
{ error: cause instanceof Error ? cause.message : "อัปโหลดไม่สำเร็จ" },
|
|
{ status: 400 },
|
|
);
|
|
}
|
|
}
|