diff --git a/src/email/templates/submittedFeedback.handlebars b/src/email/templates/submittedFeedback.handlebars
new file mode 100644
index 00000000..4bbd94b2
--- /dev/null
+++ b/src/email/templates/submittedFeedback.handlebars
@@ -0,0 +1,35 @@
+
+
+
+
+
+

+
+ Thank you for your ticket submission!
+
+ Here is the ticket's information:
+
+
+ ID: {{id}}
+ Subject: {{subject}}
+ Reporter: {{reporter.name}} - {{reporter.email}}
+ Date: {{date}}
+ Type: {{type}}
+ Page: {{reportedFrom}}
+
+
+ Description: {{description}}
+
+
+
+
+ Thanks,
Your EnCoach team
+
+
+
+
diff --git a/src/pages/api/invites/index.ts b/src/pages/api/invites/index.ts
index 4481680e..72402665 100644
--- a/src/pages/api/invites/index.ts
+++ b/src/pages/api/invites/index.ts
@@ -45,11 +45,6 @@ async function get(req: NextApiRequest, res: NextApiResponse) {
async function post(req: NextApiRequest, res: NextApiResponse) {
const body = req.body as Invite;
- const shortUID = new ShortUniqueId();
- await setDoc(doc(db, "invites", body.id || shortUID.randomUUID(8)), body);
-
- res.status(200).json({ ok: true });
-
const invitedRef = await getDoc(doc(db, "users", body.to));
if (!invitedRef.exists()) return res.status(404).json({ ok: false });
@@ -76,4 +71,9 @@ async function post(req: NextApiRequest, res: NextApiResponse) {
} catch (e) {
console.log(e);
}
+
+ const shortUID = new ShortUniqueId();
+ await setDoc(doc(db, "invites", body.id || shortUID.randomUUID(8)), body);
+
+ res.status(200).json({ ok: true });
}
diff --git a/src/pages/api/tickets/index.ts b/src/pages/api/tickets/index.ts
index 670e9fc4..009ed4b9 100644
--- a/src/pages/api/tickets/index.ts
+++ b/src/pages/api/tickets/index.ts
@@ -1,6 +1,7 @@
// Next.js API route support: https://nextjs.org/docs/api-routes/introduction
+import { sendEmail } from "@/email";
import { app } from "@/firebase";
-import { Ticket } from "@/interfaces/ticket";
+import { Ticket, TicketTypeLabel } from "@/interfaces/ticket";
import { sessionOptions } from "@/lib/session";
import {
collection,
@@ -10,6 +11,7 @@ import {
setDoc,
} from "firebase/firestore";
import { withIronSessionApiRoute } from "iron-session/next";
+import moment from "moment";
import type { NextApiRequest, NextApiResponse } from "next";
import ShortUniqueId from "short-unique-id";
@@ -42,6 +44,26 @@ async function post(req: NextApiRequest, res: NextApiResponse) {
const body = req.body as Ticket;
const shortUID = new ShortUniqueId();
- await setDoc(doc(db, "tickets", body.id || shortUID.randomUUID(8)), body);
+ const id = body.id || shortUID.randomUUID(8);
+ await setDoc(doc(db, "tickets", id), body);
res.status(200).json({ ok: true });
+
+ try {
+ await sendEmail(
+ "submittedFeedback",
+ {
+ id,
+ subject: body.subject,
+ reporter: body.reporter,
+ date: moment(body.date).format("DD/MM/YYYY - HH:mm"),
+ type: TicketTypeLabel[body.type],
+ reportedFrom: body.reportedFrom,
+ description: body.description,
+ },
+ [body.reporter.email],
+ `Ticket ${id}: ${body.subject}`,
+ );
+ } catch (e) {
+ console.log(e);
+ }
}