Files
AfiS-Aktensystem/web/app/(app)/dateien/actions.ts
T
Harlekin e0b03ea336
Prüfung / Lint, Typen, Tests (push) Canceled after 0s
Prüfung / Images bauen (pdf) (push) Canceled after 0s
Prüfung / Images bauen (web) (push) Canceled after 0s
Prüfung / Images bauen (worker) (push) Canceled after 0s
Images / bauen (pdf, docker/pdf.Dockerfile) (push) Canceled after 0s
Images / bauen (web, docker/web.Dockerfile) (push) Canceled after 0s
Images / bauen (worker, docker/worker.Dockerfile) (push) Canceled after 0s
Gedankenstriche durch Bindestriche ersetzt
375 Vorkommen in 210 Dateien. Betrifft Kommentare, Oberflaechentexte und die
README; an keiner Stelle Bedeutung, nur Zeichensetzung.
2026-09-04 08:54:52 +02:00

39 lines
1.2 KiB
TypeScript

'use server'
import { revalidatePath } from 'next/cache'
import { z } from 'zod'
import { requireUser } from '@/lib/auth/current'
import { AccessError } from '@/lib/errors'
import { releaseAttachment } from '@/lib/files/service'
import { de } from '@/lib/i18n/de'
export type ActionResult = { ok: true } | { ok: false; error: string }
const schema = z.object({ id: z.string().min(1) })
/**
* Freigabe einer Datei, deren Prüfung nicht abgeschlossen werden konnte.
* Nur mit Recht `admin`, geprüft im Dienst - nicht hier.
*/
export async function releaseAttachmentAction(input: unknown): Promise<ActionResult> {
const user = await requireUser()
const parsed = schema.safeParse(input)
if (!parsed.success) return { ok: false, error: de.actionErrors.default! }
try {
await releaseAttachment(user.permissions, parsed.data.id)
revalidatePath('/faelle')
return { ok: true }
} catch (error) {
if (error instanceof AccessError) {
return {
ok: false,
error:
de.attachment.errors[error.code] ?? de.actionErrors[error.code] ?? de.actionErrors.default!,
}
}
console.error('[dateien] Freigabe fehlgeschlagen', error)
return { ok: false, error: de.actionErrors.default! }
}
}