Add Tournament form

This commit is contained in:
Owen Rees
2023-08-29 22:55:22 +02:00
parent 419a3dd0c0
commit d33d447f90
21 changed files with 924 additions and 110 deletions
+48
View File
@@ -0,0 +1,48 @@
import { TournamentFormProps } from "@/types";
import formatDate from "@/utils/formatDate";
const discordWebhook = async ({
tournamentNameRef,
countryRef,
dateRef,
timeControlRef,
yourNameRef,
yourEmailRef,
messageRef,
}: TournamentFormProps) => {
const webhookURL = process.env.NEXT_PUBLIC_DISCORD_WEBHOOK;
if (!webhookURL) {
throw new Error("Discord webhook URL is not defined");
}
const webhookBody = {
embeds: [
{
title: "Tournament Submitted",
fields: [
{ name: "Tournament", value: tournamentNameRef.current?.value },
{ name: "Country", value: countryRef.current?.value },
{ name: "Date", value: formatDate(dateRef.current?.value) },
{
name: "Time Control",
value: timeControlRef.current?.value,
},
{ name: "Sender", value: yourNameRef.current?.value },
{ name: "Sender Email", value: yourEmailRef.current?.value },
{ name: "Message", value: messageRef.current?.value },
],
},
],
};
return await fetch(webhookURL, {
method: "POST",
headers: {
"Content-Type": "application/json",
},
body: JSON.stringify(webhookBody),
});
};
export default discordWebhook;
+28
View File
@@ -0,0 +1,28 @@
import { LatLngLiteral } from "leaflet";
import { TournamentFormProps } from "@/types";
import formatDate from "@/utils/formatDate";
const tournamentFormToDB = async (formRefs: TournamentFormProps) => {
const data = {
address: formRefs.addressRef.current?.value,
town: formRefs.townRef.current?.value.toUpperCase(),
department: formRefs.departmentRef.current?.value,
tournament: formRefs.tournamentNameRef.current?.value,
url: formRefs.urlRef.current?.value,
time_control: formRefs.timeControlRef.current?.value,
date: formatDate(formRefs.dateRef.current?.value),
coordinates: [formRefs.position.lat, formRefs.position.lng],
country: formRefs.countryRef.current?.value,
norm_tournament: formRefs.normRef.current?.value,
};
return await fetch("/api/add-tournament", {
method: "POST",
headers: {
"Content-Type": "application/json",
},
body: JSON.stringify(data),
});
};
export default tournamentFormToDB;