This commit is contained in:
Moritz Utcke
2025-03-16 22:22:34 -03:00
parent 310794a049
commit 661a75ee9c
6 changed files with 64 additions and 19 deletions

View File

@@ -7,7 +7,7 @@ import {
authorizationHeaders,
authorizationMiddleware,
} from "#lib/middleware/authorization.js";
import { getAusweisartFromUUID, UUidWithPrefix } from "#components/Ausweis/types.js";
import { UUidWithPrefix } from "#components/Ausweis/types.js";
import { getPrismaAusweisAdapter } from "#lib/server/ausweis.js";
import { PRICES, SERVICES } from "#lib/constants.js";
import { Rechnung } from "#lib/client/prisma.js";

View File

@@ -1,7 +1,8 @@
import { z } from "zod";
import { TicketsSchema, prisma } from "#lib/server/prisma.js";
import { prisma } from "#lib/server/prisma.js";
import { defineApiRoute } from "astro-typesafe-api/server";
import { UUidWithPrefix } from "#components/Ausweis/types.js";
import { TicketsSchema } from "src/generated/zod/tickets.js";
export const PUT = defineApiRoute({
meta: {
@@ -38,6 +39,37 @@ export const PUT = defineApiRoute({
},
});
// Das sind die Label IDs von Trello
const labels = {
"Technischer Fehler": "67d75d797c0884eeb3873623",
"Fehlende Funktionalität": "67d75d60b1c1b1037e7444c4",
};
const category = (input.metadata as Record<string, string>).category
const url = new URL("https://api.trello.com/1/cards")
url.searchParams.append("name", input.titel)
url.searchParams.append("desc", `User: ${input.email}\n\nDescription: ${input.beschreibung}\n\nCategory: ${category}`)
url.searchParams.append("pos", "top")
url.searchParams.append("idLabels",
(category &&
labels[category as keyof typeof labels]) ||
"650e909fdc09629a4d6d495d")
url.searchParams.append("key", "e057eb39018368ea96e456c753ac41b4")
url.searchParams.append("idList", "67d75ca7403fd22c49bc7447")
url.searchParams.append("token", "ATTA8b65b3587ab627167038cc32a3460650973eb181cde01dabb208ca1e90ed5467AC06A4F2")
// Wir laden das Ticket zu Trello hoch.
const result = await fetch(url, {
headers: {
Accept: "application/json"
},
method: "POST"
});
console.log(await result.text());
return {
uid: ticket.uid,
};

View File

@@ -5,7 +5,7 @@
*/
import { z } from "zod";
import { Enums, prisma } from "#lib/server/prisma";
import { Enums, prisma } from "#lib/server/prisma.js";
import { mollieClient } from "#lib/mollie.js";
import { APIError, defineApiRoute } from "astro-typesafe-api/server";

View File

@@ -41,10 +41,10 @@ if (!rechnung || !ausweis) {
return Astro.redirect("/")
}
if (rechnung.status === "paid") {
sendPaymentSuccessMail(ausweis, rechnung, user)
} else if (rechnung.bezahlmethode === Enums.Bezahlmethoden.rechnung) {
if (rechnung.bezahlmethode === Enums.Bezahlmethoden.rechnung) {
sendInvoiceMail(ausweis, rechnung, user)
} else {
sendPaymentSuccessMail(ausweis, rechnung, user)
}
---