318 lines
16 KiB
JavaScript
318 lines
16 KiB
JavaScript
module.exports = [
|
|
"[externals]/next/dist/compiled/next-server/app-route-turbo.runtime.dev.js [external] (next/dist/compiled/next-server/app-route-turbo.runtime.dev.js, cjs)", ((__turbopack_context__, module, exports) => {
|
|
|
|
const mod = __turbopack_context__.x("next/dist/compiled/next-server/app-route-turbo.runtime.dev.js", () => require("next/dist/compiled/next-server/app-route-turbo.runtime.dev.js"));
|
|
|
|
module.exports = mod;
|
|
}),
|
|
"[externals]/next/dist/compiled/@opentelemetry/api [external] (next/dist/compiled/@opentelemetry/api, cjs)", ((__turbopack_context__, module, exports) => {
|
|
|
|
const mod = __turbopack_context__.x("next/dist/compiled/@opentelemetry/api", () => require("next/dist/compiled/@opentelemetry/api"));
|
|
|
|
module.exports = mod;
|
|
}),
|
|
"[externals]/next/dist/compiled/next-server/app-page-turbo.runtime.dev.js [external] (next/dist/compiled/next-server/app-page-turbo.runtime.dev.js, cjs)", ((__turbopack_context__, module, exports) => {
|
|
|
|
const mod = __turbopack_context__.x("next/dist/compiled/next-server/app-page-turbo.runtime.dev.js", () => require("next/dist/compiled/next-server/app-page-turbo.runtime.dev.js"));
|
|
|
|
module.exports = mod;
|
|
}),
|
|
"[externals]/next/dist/server/app-render/work-unit-async-storage.external.js [external] (next/dist/server/app-render/work-unit-async-storage.external.js, cjs)", ((__turbopack_context__, module, exports) => {
|
|
|
|
const mod = __turbopack_context__.x("next/dist/server/app-render/work-unit-async-storage.external.js", () => require("next/dist/server/app-render/work-unit-async-storage.external.js"));
|
|
|
|
module.exports = mod;
|
|
}),
|
|
"[externals]/next/dist/server/app-render/work-async-storage.external.js [external] (next/dist/server/app-render/work-async-storage.external.js, cjs)", ((__turbopack_context__, module, exports) => {
|
|
|
|
const mod = __turbopack_context__.x("next/dist/server/app-render/work-async-storage.external.js", () => require("next/dist/server/app-render/work-async-storage.external.js"));
|
|
|
|
module.exports = mod;
|
|
}),
|
|
"[externals]/next/dist/shared/lib/no-fallback-error.external.js [external] (next/dist/shared/lib/no-fallback-error.external.js, cjs)", ((__turbopack_context__, module, exports) => {
|
|
|
|
const mod = __turbopack_context__.x("next/dist/shared/lib/no-fallback-error.external.js", () => require("next/dist/shared/lib/no-fallback-error.external.js"));
|
|
|
|
module.exports = mod;
|
|
}),
|
|
"[externals]/next/dist/server/app-render/after-task-async-storage.external.js [external] (next/dist/server/app-render/after-task-async-storage.external.js, cjs)", ((__turbopack_context__, module, exports) => {
|
|
|
|
const mod = __turbopack_context__.x("next/dist/server/app-render/after-task-async-storage.external.js", () => require("next/dist/server/app-render/after-task-async-storage.external.js"));
|
|
|
|
module.exports = mod;
|
|
}),
|
|
"[project]/lib/prisma.ts [app-route] (ecmascript)", ((__turbopack_context__) => {
|
|
"use strict";
|
|
|
|
return __turbopack_context__.a(async (__turbopack_handle_async_dependencies__, __turbopack_async_result__) => { try {
|
|
|
|
__turbopack_context__.s([
|
|
"default",
|
|
()=>__TURBOPACK__default__export__,
|
|
"prisma",
|
|
()=>prisma
|
|
]);
|
|
// /opt/erp-system/lib/prisma.ts
|
|
var __TURBOPACK__imported__module__$5b$externals$5d2f40$prisma$2f$client__$5b$external$5d$__$2840$prisma$2f$client$2c$__cjs$2c$__$5b$project$5d2f$node_modules$2f40$prisma$2f$client$29$__ = __turbopack_context__.i("[externals]/@prisma/client [external] (@prisma/client, cjs, [project]/node_modules/@prisma/client)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f40$prisma$2f$adapter$2d$pg$2f$dist$2f$index$2e$mjs__$5b$app$2d$route$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/node_modules/@prisma/adapter-pg/dist/index.mjs [app-route] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$externals$5d2f$pg__$5b$external$5d$__$28$pg$2c$__esm_import$2c$__$5b$project$5d2f$node_modules$2f$pg$29$__ = __turbopack_context__.i("[externals]/pg [external] (pg, esm_import, [project]/node_modules/pg)");
|
|
var __turbopack_async_dependencies__ = __turbopack_handle_async_dependencies__([
|
|
__TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f40$prisma$2f$adapter$2d$pg$2f$dist$2f$index$2e$mjs__$5b$app$2d$route$5d$__$28$ecmascript$29$__,
|
|
__TURBOPACK__imported__module__$5b$externals$5d2f$pg__$5b$external$5d$__$28$pg$2c$__esm_import$2c$__$5b$project$5d2f$node_modules$2f$pg$29$__
|
|
]);
|
|
[__TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f40$prisma$2f$adapter$2d$pg$2f$dist$2f$index$2e$mjs__$5b$app$2d$route$5d$__$28$ecmascript$29$__, __TURBOPACK__imported__module__$5b$externals$5d2f$pg__$5b$external$5d$__$28$pg$2c$__esm_import$2c$__$5b$project$5d2f$node_modules$2f$pg$29$__] = __turbopack_async_dependencies__.then ? (await __turbopack_async_dependencies__)() : __turbopack_async_dependencies__;
|
|
;
|
|
;
|
|
;
|
|
// Verhindert zu viele offene Verbindungen beim Hot-Reloading in Next.js
|
|
const globalForPrisma = /*TURBOPACK member replacement*/ __turbopack_context__.g;
|
|
const pool = new __TURBOPACK__imported__module__$5b$externals$5d2f$pg__$5b$external$5d$__$28$pg$2c$__esm_import$2c$__$5b$project$5d2f$node_modules$2f$pg$29$__["Pool"]({
|
|
connectionString: process.env.DATABASE_URL
|
|
});
|
|
const adapter = new __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f40$prisma$2f$adapter$2d$pg$2f$dist$2f$index$2e$mjs__$5b$app$2d$route$5d$__$28$ecmascript$29$__["PrismaPg"](pool);
|
|
const prisma = globalForPrisma.prisma || new __TURBOPACK__imported__module__$5b$externals$5d2f40$prisma$2f$client__$5b$external$5d$__$2840$prisma$2f$client$2c$__cjs$2c$__$5b$project$5d2f$node_modules$2f40$prisma$2f$client$29$__["PrismaClient"]({
|
|
adapter
|
|
});
|
|
if ("TURBOPACK compile-time truthy", 1) globalForPrisma.prisma = prisma;
|
|
const __TURBOPACK__default__export__ = prisma;
|
|
__turbopack_async_result__();
|
|
} catch(e) { __turbopack_async_result__(e); } }, false);}),
|
|
"[externals]/events [external] (events, cjs)", ((__turbopack_context__, module, exports) => {
|
|
|
|
const mod = __turbopack_context__.x("events", () => require("events"));
|
|
|
|
module.exports = mod;
|
|
}),
|
|
"[externals]/url [external] (url, cjs)", ((__turbopack_context__, module, exports) => {
|
|
|
|
const mod = __turbopack_context__.x("url", () => require("url"));
|
|
|
|
module.exports = mod;
|
|
}),
|
|
"[externals]/util [external] (util, cjs)", ((__turbopack_context__, module, exports) => {
|
|
|
|
const mod = __turbopack_context__.x("util", () => require("util"));
|
|
|
|
module.exports = mod;
|
|
}),
|
|
"[externals]/fs [external] (fs, cjs)", ((__turbopack_context__, module, exports) => {
|
|
|
|
const mod = __turbopack_context__.x("fs", () => require("fs"));
|
|
|
|
module.exports = mod;
|
|
}),
|
|
"[externals]/http [external] (http, cjs)", ((__turbopack_context__, module, exports) => {
|
|
|
|
const mod = __turbopack_context__.x("http", () => require("http"));
|
|
|
|
module.exports = mod;
|
|
}),
|
|
"[externals]/https [external] (https, cjs)", ((__turbopack_context__, module, exports) => {
|
|
|
|
const mod = __turbopack_context__.x("https", () => require("https"));
|
|
|
|
module.exports = mod;
|
|
}),
|
|
"[externals]/zlib [external] (zlib, cjs)", ((__turbopack_context__, module, exports) => {
|
|
|
|
const mod = __turbopack_context__.x("zlib", () => require("zlib"));
|
|
|
|
module.exports = mod;
|
|
}),
|
|
"[externals]/stream [external] (stream, cjs)", ((__turbopack_context__, module, exports) => {
|
|
|
|
const mod = __turbopack_context__.x("stream", () => require("stream"));
|
|
|
|
module.exports = mod;
|
|
}),
|
|
"[externals]/net [external] (net, cjs)", ((__turbopack_context__, module, exports) => {
|
|
|
|
const mod = __turbopack_context__.x("net", () => require("net"));
|
|
|
|
module.exports = mod;
|
|
}),
|
|
"[externals]/dns [external] (dns, cjs)", ((__turbopack_context__, module, exports) => {
|
|
|
|
const mod = __turbopack_context__.x("dns", () => require("dns"));
|
|
|
|
module.exports = mod;
|
|
}),
|
|
"[externals]/os [external] (os, cjs)", ((__turbopack_context__, module, exports) => {
|
|
|
|
const mod = __turbopack_context__.x("os", () => require("os"));
|
|
|
|
module.exports = mod;
|
|
}),
|
|
"[externals]/path [external] (path, cjs)", ((__turbopack_context__, module, exports) => {
|
|
|
|
const mod = __turbopack_context__.x("path", () => require("path"));
|
|
|
|
module.exports = mod;
|
|
}),
|
|
"[externals]/crypto [external] (crypto, cjs)", ((__turbopack_context__, module, exports) => {
|
|
|
|
const mod = __turbopack_context__.x("crypto", () => require("crypto"));
|
|
|
|
module.exports = mod;
|
|
}),
|
|
"[externals]/tls [external] (tls, cjs)", ((__turbopack_context__, module, exports) => {
|
|
|
|
const mod = __turbopack_context__.x("tls", () => require("tls"));
|
|
|
|
module.exports = mod;
|
|
}),
|
|
"[externals]/child_process [external] (child_process, cjs)", ((__turbopack_context__, module, exports) => {
|
|
|
|
const mod = __turbopack_context__.x("child_process", () => require("child_process"));
|
|
|
|
module.exports = mod;
|
|
}),
|
|
"[project]/lib/email.ts [app-route] (ecmascript)", ((__turbopack_context__) => {
|
|
"use strict";
|
|
|
|
return __turbopack_context__.a(async (__turbopack_handle_async_dependencies__, __turbopack_async_result__) => { try {
|
|
|
|
__turbopack_context__.s([
|
|
"sendEmail",
|
|
()=>sendEmail
|
|
]);
|
|
// /opt/erp-system/lib/email.ts
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$nodemailer$2f$lib$2f$nodemailer$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/node_modules/nodemailer/lib/nodemailer.js [app-route] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$lib$2f$prisma$2e$ts__$5b$app$2d$route$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/lib/prisma.ts [app-route] (ecmascript)");
|
|
var __turbopack_async_dependencies__ = __turbopack_handle_async_dependencies__([
|
|
__TURBOPACK__imported__module__$5b$project$5d2f$lib$2f$prisma$2e$ts__$5b$app$2d$route$5d$__$28$ecmascript$29$__
|
|
]);
|
|
[__TURBOPACK__imported__module__$5b$project$5d2f$lib$2f$prisma$2e$ts__$5b$app$2d$route$5d$__$28$ecmascript$29$__] = __turbopack_async_dependencies__.then ? (await __turbopack_async_dependencies__)() : __turbopack_async_dependencies__;
|
|
;
|
|
;
|
|
async function sendEmail({ to, subject, text, html }) {
|
|
try {
|
|
// 1. Aktuelle Einstellungen aus der Datenbank laden
|
|
const settings = await __TURBOPACK__imported__module__$5b$project$5d2f$lib$2f$prisma$2e$ts__$5b$app$2d$route$5d$__$28$ecmascript$29$__["default"].systemSettings.findFirst({
|
|
where: {
|
|
id: 1
|
|
}
|
|
});
|
|
// 2. Prüfen, ob SMTP konfiguriert ist
|
|
if (!settings || !settings.smtpHost || !settings.smtpUser || !settings.smtpPass) {
|
|
console.warn("WARNUNG: SMTP-Einstellungen fehlen in der GUI. E-Mail an", to, "wird abgebrochen.");
|
|
return;
|
|
}
|
|
// 3. Transporter dynamisch mit den DB-Daten erstellen
|
|
const transporter = __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$nodemailer$2f$lib$2f$nodemailer$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["default"].createTransport({
|
|
host: settings.smtpHost,
|
|
port: settings.smtpPort,
|
|
secure: settings.smtpPort === 465,
|
|
auth: {
|
|
user: settings.smtpUser,
|
|
pass: settings.smtpPass
|
|
}
|
|
});
|
|
// 4. E-Mail senden
|
|
const info = await transporter.sendMail({
|
|
from: settings.smtpFrom || settings.smtpUser,
|
|
to,
|
|
subject,
|
|
text,
|
|
html: html || text.replace(/\n/g, '<br>')
|
|
});
|
|
console.log("E-Mail erfolgreich gesendet: %s", info.messageId);
|
|
} catch (error) {
|
|
console.error("Fehler beim Senden der E-Mail:", error);
|
|
}
|
|
}
|
|
__turbopack_async_result__();
|
|
} catch(e) { __turbopack_async_result__(e); } }, false);}),
|
|
"[project]/app/api/tickets/route.ts [app-route] (ecmascript)", ((__turbopack_context__) => {
|
|
"use strict";
|
|
|
|
return __turbopack_context__.a(async (__turbopack_handle_async_dependencies__, __turbopack_async_result__) => { try {
|
|
|
|
__turbopack_context__.s([
|
|
"GET",
|
|
()=>GET,
|
|
"POST",
|
|
()=>POST
|
|
]);
|
|
// /opt/erp-system/app/api/tickets/route.ts
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$server$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/node_modules/next/server.js [app-route] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$lib$2f$prisma$2e$ts__$5b$app$2d$route$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/lib/prisma.ts [app-route] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$lib$2f$email$2e$ts__$5b$app$2d$route$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/lib/email.ts [app-route] (ecmascript)");
|
|
var __turbopack_async_dependencies__ = __turbopack_handle_async_dependencies__([
|
|
__TURBOPACK__imported__module__$5b$project$5d2f$lib$2f$prisma$2e$ts__$5b$app$2d$route$5d$__$28$ecmascript$29$__,
|
|
__TURBOPACK__imported__module__$5b$project$5d2f$lib$2f$email$2e$ts__$5b$app$2d$route$5d$__$28$ecmascript$29$__
|
|
]);
|
|
[__TURBOPACK__imported__module__$5b$project$5d2f$lib$2f$prisma$2e$ts__$5b$app$2d$route$5d$__$28$ecmascript$29$__, __TURBOPACK__imported__module__$5b$project$5d2f$lib$2f$email$2e$ts__$5b$app$2d$route$5d$__$28$ecmascript$29$__] = __turbopack_async_dependencies__.then ? (await __turbopack_async_dependencies__)() : __turbopack_async_dependencies__;
|
|
;
|
|
;
|
|
;
|
|
async function GET() {
|
|
try {
|
|
const tickets = await __TURBOPACK__imported__module__$5b$project$5d2f$lib$2f$prisma$2e$ts__$5b$app$2d$route$5d$__$28$ecmascript$29$__["default"].ticket.findMany({
|
|
include: {
|
|
customer: {
|
|
select: {
|
|
companyName: true,
|
|
firstName: true,
|
|
lastName: true
|
|
}
|
|
},
|
|
assignedTo: {
|
|
select: {
|
|
id: true,
|
|
firstName: true,
|
|
lastName: true
|
|
}
|
|
}
|
|
},
|
|
orderBy: {
|
|
updatedAt: 'desc'
|
|
}
|
|
});
|
|
return __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$server$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["NextResponse"].json(tickets);
|
|
} catch (error) {
|
|
return __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$server$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["NextResponse"].json({
|
|
error: 'Ladefehler'
|
|
}, {
|
|
status: 500
|
|
});
|
|
}
|
|
}
|
|
async function POST(request) {
|
|
try {
|
|
const body = await request.json();
|
|
const ticket = await __TURBOPACK__imported__module__$5b$project$5d2f$lib$2f$prisma$2e$ts__$5b$app$2d$route$5d$__$28$ecmascript$29$__["default"].ticket.create({
|
|
data: {
|
|
title: body.title,
|
|
description: body.description,
|
|
customerId: parseInt(body.customerId),
|
|
priority: body.priority || 'MEDIUM'
|
|
},
|
|
include: {
|
|
customer: true
|
|
}
|
|
});
|
|
// Automatischer E-Mail-Versand an den Kunden
|
|
if (ticket.customer.email) {
|
|
await (0, __TURBOPACK__imported__module__$5b$project$5d2f$lib$2f$email$2e$ts__$5b$app$2d$route$5d$__$28$ecmascript$29$__["sendEmail"])({
|
|
to: ticket.customer.email,
|
|
subject: `Ticket #${ticket.id} eröffnet: ${ticket.title}`,
|
|
text: `Hallo ${ticket.customer.firstName},\n\ndein Ticket wurde erfolgreich in unserem System erfasst.\n\nBetreff: ${ticket.title}\nBeschreibung:\n${ticket.description}\n\nWir kümmern uns schnellstmöglich darum.\n\nViele Grüße\nDein Support-Team`
|
|
});
|
|
}
|
|
return __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$server$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["NextResponse"].json(ticket, {
|
|
status: 201
|
|
});
|
|
} catch (error) {
|
|
return __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$server$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["NextResponse"].json({
|
|
error: 'Fehler beim Erstellen'
|
|
}, {
|
|
status: 500
|
|
});
|
|
}
|
|
}
|
|
__turbopack_async_result__();
|
|
} catch(e) { __turbopack_async_result__(e); } }, false);}),
|
|
];
|
|
|
|
//# sourceMappingURL=%5Broot-of-the-server%5D__0h4o3~m._.js.map
|