Skip to content

Commit

Permalink
feat(contact): enabled email sending using bun-email-api service
Browse files Browse the repository at this point in the history
  • Loading branch information
jkrumm committed May 7, 2024
1 parent 51f29b7 commit 0208874
Show file tree
Hide file tree
Showing 3 changed files with 25 additions and 35 deletions.
4 changes: 4 additions & 0 deletions src/env.ts
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,8 @@ export const env = createEnv({
// @ts-ignore
NEXT_PUBLIC_SENTRY_DSN: z.string().url(),
ANALYTICS_SECRET_TOKEN: z.string(),
BEA_SECRET_KEY: z.string(),
BEA_BASE_URL: z.string(),
ANALYTICS_URL: z.string().url(),
UPSTASH_REDIS_REST_URL: z.string().url(),
UPSTASH_REDIS_REST_TOKEN: z.string(),
Expand Down Expand Up @@ -55,6 +57,8 @@ export const env = createEnv({
NEXT_PUBLIC_NODE_ENV: process.env.NODE_ENV,
ANALYTICS_SECRET_TOKEN: process.env.ANALYTICS_SECRET_TOKEN,
ANALYTICS_URL: process.env.ANALYTICS_URL,
BEA_SECRET_KEY: process.env.BEA_SECRET_KEY,
BEA_BASE_URL: process.env.BEA_BASE_URL,
UPSTASH_REDIS_REST_URL: process.env.UPSTASH_REDIS_REST_URL,
UPSTASH_REDIS_REST_TOKEN: process.env.UPSTASH_REDIS_REST_TOKEN,
UPSTASH_REDIS_REST_URL_ROOM_STATE:
Expand Down
4 changes: 2 additions & 2 deletions src/pages/contact.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -49,11 +49,11 @@ const Contact: NextPage = () => {
message: '',
},
validate: {
name: (value) => value.trim().length > 40,
name: (value) => value.trim().length > 50,
email: (value) =>
value.trim().length !== 0 &&
(!/^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$/.test(value) ||
value.trim().length > 60),
value.trim().length > 70),
subject: (value) => value.trim().length < 3 || value.trim().length > 100,
message: (value) => value.trim().length > 800,
},
Expand Down
52 changes: 19 additions & 33 deletions src/server/api/routers/contact.router.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
import { env } from 'fpp/env';

import { TRPCError } from '@trpc/server';

import { eq } from 'drizzle-orm';
Expand All @@ -10,8 +12,8 @@ export const contactRouter = createTRPCRouter({
sendMail: publicProcedure
.input(
z.object({
name: z.string().max(40).optional(),
email: z.string().max(60).optional(),
name: z.string().max(50).optional(),
email: z.string().email().max(70),
subject: z.string().min(3).max(100),
message: z.string().max(800).optional(),
}),
Expand All @@ -29,36 +31,20 @@ export const contactRouter = createTRPCRouter({
});
}

// const mailData = {
// // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
// from: `FreePlanningPoker ${env.SEND_EMAIL}`,
// // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
// to: env.TARGET_EMAIL,
// subject: `FFP - ${subject.slice(0, 15)}`,
// text: `FreePlanningPoker.com - ${name} - ${email} - ${subject} - ${message}`,
// html: `<h1>FreePlanningPoker.com</h1><br /><h2>Name</h2><p>${name}</p><br /><h2>Email</h2><p>${email}</p><br /><h2>Subject</h2><p>${subject}</p><br /><h2>Message</h2><p>${message}</p>`,
// };
//
// // eslint-disable-next-line @typescript-eslint/no-unsafe-call,@typescript-eslint/no-unsafe-member-access,@typescript-eslint/no-unsafe-assignment
// const transporter = nodemailer.createTransport({
// port: 465,
// host: "smtp.gmail.com",
// auth: {
// // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
// user: env.SEND_EMAIL,
// // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
// pass: env.SEND_EMAIL_PASSWORD,
// },
// secure: true,
// }) as nodemailer.Transporter;
//
// // eslint-disable-next-line @typescript-eslint/no-unsafe-call,@typescript-eslint/no-unsafe-member-access
// transporter.sendMail(mailData, function (err, info) {
// if (err) {
// throw new Error("Error sending email");
// } else {
// console.log(info);
// }
// });
await fetch(`http://${env.BEA_BASE_URL}:3010/fpp`, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
Authorization: `Bearer ${env.BEA_SECRET_KEY}`,
},
body: JSON.stringify({ name, email, subject, message }),
}).then(async (res) => {
if (res.status !== 200) {
throw new TRPCError({
message: 'Failed to send email',
code: 'INTERNAL_SERVER_ERROR',
});
}
});
}),
});

0 comments on commit 0208874

Please sign in to comment.