import { BenutzerSchema } from "#lib/server/prisma";
import { z } from "zod";
import { defineApiRoute } from "astro-typesafe-api/server";
import { authorizationMiddleware } from "#lib/middleware/authorization.js";

export const GET = defineApiRoute({
	meta: {
		description:
			"Gibt die Daten des momentan eingeloggten Benutzers zurück. Falls der Authorization Key invalid ist wird stattdessen null zurückgegeben.",
		summary: "Gibt die Daten des eingeloggten Benutzers zurück.",
		tags: ["Benutzer"],
	},

	input: z.void(),
	output: BenutzerSchema.omit({
		passwort: true,
		id: true,
	}).or(z.null()),
	middleware: authorizationMiddleware,
	async fetch(input, ctx, transfer) {
		return transfer;
	},
});
