| 12345678910111213141516171819202122232425262728293031323334 |
- import { NextResponse } from 'next/server';
- import { uploadMedia } from '@/actions/media';
- import { getAuthContextFromRequest } from '@/lib/auth/request-context';
- export async function POST(request: Request) {
- try {
- const auth = await getAuthContextFromRequest(request);
- if (!auth) {
- return NextResponse.json({ error: 'Unauthorized' }, { status: 401 });
- }
- const formData = await request.formData();
- const file = formData.get('file');
- if (!(file instanceof File)) {
- return NextResponse.json({ error: 'Missing file' }, { status: 400 });
- }
- const result = await uploadMedia(file, { ownerId: auth.userId });
- return NextResponse.json({
- media: {
- mediaId: result.media.id,
- filename: result.media.filename,
- status: result.media.status,
- },
- });
- } catch (error) {
- return NextResponse.json(
- { error: error instanceof Error ? error.message : 'Upload failed' },
- { status: 500 }
- );
- }
- }
|