first commit
This commit is contained in:
@@ -0,0 +1,149 @@
|
||||
import { c as defineEventHandler, u as useRuntimeConfig, r as readBody, e as createError } from '../../_/nitro.mjs';
|
||||
import 'unhead/server';
|
||||
import 'vue';
|
||||
import 'unhead/legacy';
|
||||
import 'unhead/plugins';
|
||||
import 'node:http';
|
||||
import 'node:https';
|
||||
import 'node:events';
|
||||
import 'node:buffer';
|
||||
import 'node:fs';
|
||||
import 'node:path';
|
||||
import 'node:crypto';
|
||||
import 'node:url';
|
||||
|
||||
const consult_post = defineEventHandler(async (event) => {
|
||||
const config = useRuntimeConfig();
|
||||
const body = await readBody(event);
|
||||
const {
|
||||
studentName,
|
||||
parentPhone,
|
||||
name,
|
||||
phone,
|
||||
schoolName,
|
||||
grade,
|
||||
location,
|
||||
regionName,
|
||||
memo,
|
||||
url
|
||||
} = body || {};
|
||||
const finalStudentName = studentName || name || "\uBBF8\uAE30\uC7AC";
|
||||
const finalParentPhone = parentPhone || phone || "";
|
||||
const finalLocation = location || regionName || "\uBBF8\uAE30\uC7AC";
|
||||
const finalGrade = grade || "\uBBF8\uC9C0\uC815";
|
||||
const finalSchool = schoolName || "\uBBF8\uAE30\uC7AC";
|
||||
if (!finalParentPhone) {
|
||||
throw createError({
|
||||
statusCode: 400,
|
||||
statusMessage: "\uBD80\uBAA8\uB2D8 \uC5F0\uB77D\uCC98\uB97C \uC62C\uBC14\uB974\uAC8C \uC785\uB825\uD574\uC8FC\uC138\uC694."
|
||||
});
|
||||
}
|
||||
const webhookUrl = config.discordWebhookUrl || "https://discordapp.com/api/webhooks/1557204310369116210/9J4y96kmSbYNGtw5OxRgIz7InWcM8o3f8UX0Ad71-IyofwdS7tWmXkF7dj457-I8Ypiu";
|
||||
const siteName = config.public.siteName || "1:1 \uB9DE\uCDA4\uACFC\uC678";
|
||||
const siteDomain = config.public.siteDomain || "https://aeseo.cloud";
|
||||
const now = /* @__PURE__ */ new Date();
|
||||
const kstTime = new Intl.DateTimeFormat("ko-KR", {
|
||||
timeZone: "Asia/Seoul",
|
||||
year: "numeric",
|
||||
month: "2-digit",
|
||||
day: "2-digit",
|
||||
hour: "2-digit",
|
||||
minute: "2-digit",
|
||||
second: "2-digit",
|
||||
hour12: false
|
||||
}).format(now);
|
||||
const discordPayload = {
|
||||
username: `${siteName} \uC0C1\uB2F4 \uC54C\uB9BC \uBD07`,
|
||||
avatar_url: "https://cdn-icons-png.flaticon.com/512/2997/2997295.png",
|
||||
embeds: [
|
||||
{
|
||||
title: `[\uC2E0\uADDC \uBB34\uB8CC \uC0C1\uB2F4 \uC2E0\uCCAD \uC811\uC218] ${finalLocation} - ${finalGrade} (${finalStudentName} \uD559\uC0DD)`,
|
||||
description: `**${siteName}** \uC0AC\uC774\uD2B8\uC5D0\uC11C \uC0C8\uB85C\uC6B4 1:1 \uD559\uC2B5 \uC0C1\uB2F4 \uC2E0\uCCAD\uC774 \uC811\uC218\uB418\uC5C8\uC2B5\uB2C8\uB2E4.`,
|
||||
color: 10033947,
|
||||
// 신뢰감 있는 딥 레드/네이비
|
||||
fields: [
|
||||
{
|
||||
name: "[\uC811\uC218 \uC0AC\uC774\uD2B8]",
|
||||
value: `**${siteName}**
|
||||
${siteDomain}`,
|
||||
inline: true
|
||||
},
|
||||
{
|
||||
name: "[\uC0AC\uB294 \uACF3]",
|
||||
value: finalLocation,
|
||||
inline: true
|
||||
},
|
||||
{
|
||||
name: "[\uD559\uC0DD \uC774\uB984]",
|
||||
value: `**${finalStudentName}**`,
|
||||
inline: true
|
||||
},
|
||||
{
|
||||
name: "[\uBD80\uBAA8\uB2D8 \uC5F0\uB77D\uCC98]",
|
||||
value: `**${finalParentPhone}**`,
|
||||
inline: true
|
||||
},
|
||||
{
|
||||
name: "[\uB2E4\uB2C8\uB294 \uD559\uAD50]",
|
||||
value: finalSchool,
|
||||
inline: true
|
||||
},
|
||||
{
|
||||
name: "[\uD559\uB144]",
|
||||
value: finalGrade,
|
||||
inline: true
|
||||
},
|
||||
{
|
||||
name: "[\uC811\uC218 \uC77C\uC2DC (KST)]",
|
||||
value: kstTime,
|
||||
inline: true
|
||||
},
|
||||
{
|
||||
name: "[\uC720\uC785 \uD398\uC774\uC9C0 URL]",
|
||||
value: url ? `${url}` : `${siteDomain}`,
|
||||
inline: false
|
||||
},
|
||||
{
|
||||
name: "[\uC0C1\uB2F4\uBB38\uC758 \uB0B4\uC6A9 (\uC120\uD0DD)]",
|
||||
value: memo && memo.trim() ? memo.trim() : "\uC785\uB825\uB41C \uC0C1\uC138 \uBB38\uC758 \uB0B4\uC6A9 \uC5C6\uC74C",
|
||||
inline: false
|
||||
}
|
||||
],
|
||||
footer: {
|
||||
text: `${siteName} \uC2E4\uC2DC\uAC04 \uC0C1\uB2F4 \uC54C\uB9BC \uC2DC\uC2A4\uD15C`
|
||||
},
|
||||
timestamp: now.toISOString()
|
||||
}
|
||||
]
|
||||
};
|
||||
try {
|
||||
const res = await fetch(webhookUrl, {
|
||||
method: "POST",
|
||||
headers: {
|
||||
"Content-Type": "application/json"
|
||||
},
|
||||
body: JSON.stringify(discordPayload)
|
||||
});
|
||||
if (!res.ok) {
|
||||
const errText = await res.text();
|
||||
console.error("[Discord Webhook Error]:", res.status, errText);
|
||||
return {
|
||||
success: false,
|
||||
message: "\uB514\uC2A4\uCF54\uB4DC \uC804\uC1A1 \uC911 \uC624\uB958\uAC00 \uBC1C\uC0DD\uD588\uC2B5\uB2C8\uB2E4."
|
||||
};
|
||||
}
|
||||
return {
|
||||
success: true,
|
||||
message: "\uC0C1\uB2F4 \uC2E0\uCCAD\uC774 \uC815\uC0C1\uC801\uC73C\uB85C \uC644\uB8CC\uB418\uC5C8\uC2B5\uB2C8\uB2E4."
|
||||
};
|
||||
} catch (err) {
|
||||
console.error("[Consult Submission Error]:", err.message);
|
||||
return {
|
||||
success: false,
|
||||
message: "\uC11C\uBC84 \uC624\uB958\uB85C \uC778\uD574 \uC804\uC1A1\uC5D0 \uC2E4\uD328\uD588\uC2B5\uB2C8\uB2E4."
|
||||
};
|
||||
}
|
||||
});
|
||||
|
||||
export { consult_post as default };
|
||||
//# sourceMappingURL=consult.post.mjs.map
|
||||
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"consult.post.mjs","sources":["../../../../../server/api/consult.post.ts"],"names":[],"mappings":"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"}
|
||||
Reference in New Issue
Block a user