style: move button
This commit is contained in:
+20
-26
@@ -9,11 +9,8 @@ import { authOptions } from "@/lib/auth-options";
|
||||
import { requireAdmin, requireDiscordId, requireFormAccess } from "@/lib/auth";
|
||||
import { sse } from "@/lib/sse";
|
||||
import type { FormAnswerValue } from "@/lib/form-answer-values";
|
||||
import {
|
||||
answersByTemplateIndex,
|
||||
normalizeSubmissionAnswers,
|
||||
submissionUpdateText,
|
||||
} from "@/lib/submission-intake";
|
||||
import { normalizeSubmissionAnswers } from "@/lib/submission-intake";
|
||||
import { submissionWebhookMessage } from "@/lib/submission-webhook";
|
||||
|
||||
export async function submitForm(
|
||||
formId: string,
|
||||
@@ -132,30 +129,19 @@ export async function submitForm(
|
||||
? form.discordWebhookUpdateTemplate
|
||||
: form.discordWebhookTemplate;
|
||||
|
||||
if (form.discordWebhookUrl && templateToUse) {
|
||||
if (form.discordWebhookUrl) {
|
||||
try {
|
||||
const answersDict = answersByTemplateIndex(questionsList, normalizedAnswers);
|
||||
const updatesText = result.isUpdate
|
||||
? submissionUpdateText(questionsList, normalizedAnswers, result.oldAnswersDict)
|
||||
: "";
|
||||
|
||||
let message = templateToUse;
|
||||
// Replace {1}, {2}, etc. with value, and new variables
|
||||
message = message.replace(/\{([^}]+)\}/g, (match: string, p1: string) => {
|
||||
const key = p1.toLowerCase();
|
||||
if (key === "username" || key === "displayname") {
|
||||
return session.user?.name || "Unknown User";
|
||||
}
|
||||
if (key === "id") {
|
||||
return discordId || "Unknown ID";
|
||||
}
|
||||
if (key === "update") {
|
||||
return updatesText;
|
||||
}
|
||||
return answersDict[p1] || "Not Provided";
|
||||
const message = submissionWebhookMessage({
|
||||
template: templateToUse,
|
||||
isUpdate: result.isUpdate,
|
||||
userName: session.user.name,
|
||||
discordId,
|
||||
questions: questionsList,
|
||||
answers: normalizedAnswers,
|
||||
oldAnswersByQuestionId: result.oldAnswersDict,
|
||||
});
|
||||
|
||||
await fetch(form.discordWebhookUrl, {
|
||||
const response = await fetch(form.discordWebhookUrl, {
|
||||
method: "POST",
|
||||
headers: {
|
||||
"Content-Type": "application/json",
|
||||
@@ -164,6 +150,14 @@ export async function submitForm(
|
||||
content: message,
|
||||
}),
|
||||
});
|
||||
if (!response.ok) {
|
||||
const responseBody = await response.text();
|
||||
console.error("Discord webhook rejected submission notification", {
|
||||
status: response.status,
|
||||
statusText: response.statusText,
|
||||
response: responseBody.slice(0, 500),
|
||||
});
|
||||
}
|
||||
} catch (e) {
|
||||
console.error("Failed to send webhook", e);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user