WIP on dev-moritz

This commit is contained in:
Moritz Utcke
2025-01-21 12:35:20 +07:00
parent 5a551c0f33
commit de8c859826
59 changed files with 1221 additions and 397 deletions

View File

@@ -0,0 +1,71 @@
import { authorizationMiddleware } from "#lib/middleware/authorization.js";
import { prisma } from "@ibcornelsen/database/server";
import { APIError, defineApiRoute } from "astro-typesafe-api/server";
export const PATCH = defineApiRoute({
fetch(input, context) {},
});
export const GET = defineApiRoute({
meta: {
description: "Gibt ein spezifisches Gebäude des Benutzers zurück.",
tags: ["Gebäude"],
headers: {
"Authorization": {
description: "Ein gültiger Authentifizierungstoken",
required: true,
allowEmptyValue: false,
examples: {
Bearer: {
value: "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
}
}
}
}
},
middleware: authorizationMiddleware,
async fetch(input, context, user) {
const { uid } = context.params;
const ausweis = await prisma.verbrauchsausweisWohnen.findUnique({
where: {
uid,
},
include: {
benutzer: true,
aufnahme: {
include: {
objekt: {
include: {
gebaeude_bilder: true
},
},
rechnungen: true,
events: {
include: {
benutzer: {
select: {
uid: true
}
}
},
orderBy: {
date: "asc"
}
}
},
}
},
});
if (!ausweis || (ausweis.benutzer_id !== null && ausweis.benutzer_id !== user.id)) {
// Falls wir den Ausweis nicht finden können, werfen wir einen Fehler
throw new APIError({
code: "NOT_FOUND",
message: "Ausweis konnte nicht gefunden werden.",
});
}
return ausweis
},
});