Files
backerup-website/frontend/app/api/files/[token]/route.ts
T

34 lines
923 B
TypeScript

import { NextResponse } from 'next/server'
import { getFile, deleteFile } from '@/lib/store'
import { getSession } from '@/lib/session'
export async function GET(
_request: Request,
{ params }: { params: Promise<{ token: string }> },
) {
const { token } = await params
const record = await getFile(token)
if (!record) {
return NextResponse.json({ error: 'Not found' }, { status: 404 })
}
return NextResponse.json(record)
}
export async function DELETE(
_request: Request,
{ params }: { params: Promise<{ token: string }> },
) {
const session = await getSession()
if (!session || session.role !== 'admin') {
return NextResponse.json({ error: 'Forbidden' }, { status: 403 })
}
const { token } = await params
try {
await deleteFile(token)
return NextResponse.json({ ok: true })
} catch (e) {
return NextResponse.json({ error: (e as Error).message }, { status: 404 })
}
}