Skip to content

Commit 39400b4

Browse files
committed
refact: replace Google by Resend on send email
1 parent be3d395 commit 39400b4

File tree

6 files changed

+101
-34
lines changed

6 files changed

+101
-34
lines changed

package-lock.json

Lines changed: 88 additions & 23 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@
3030
"@commitlint/types": "^19.8.0",
3131
"@faker-js/faker": "^9.8.0",
3232
"@types/node": "^22.13.9",
33-
"@types/nodemailer": "^6.4.17",
3433
"conventional-changelog-atom": "^5.0.0",
3534
"prisma": "^6.4.1",
3635
"tsup": "^8.4.0",
@@ -47,7 +46,7 @@
4746
"dotenv": "^16.5.0",
4847
"fastify": "^5.3.2",
4948
"nanoid": "^5.1.5",
50-
"nodemailer": "^7.0.5",
49+
"resend": "^6.5.2",
5150
"zod": "^3.24.2"
5251
}
5352
}

src/env/index.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,7 @@ const envSchema = z.object({
66
PORT: z.coerce.number().min(1000).max(9999).default(3333),
77
NODE_ENV: z.enum(['dev', 'test', 'prod']).default('dev'),
88
JWT_SECRET: z.string(),
9-
GMAIL_USER: z.string().email(),
10-
GMAIL_PASS: z.string(),
9+
RESEND_API_KEY: z.string(),
1110
})
1211

1312
const _env = envSchema.safeParse(process.env)

src/lib/nodemailer.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { env } from '@/env'
1+
/* import { env } from '@/env'
22
import { type SendMailOptions, createTransport } from 'nodemailer'
33
44
const transporter = createTransport({
@@ -25,4 +25,4 @@ export async function sendMail(options: SendMailOptions) {
2525
2626
const email = await transporter.sendMail(mailOptions)
2727
return email
28-
}
28+
} */

src/lib/resend.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
import { env } from '@/env'
2+
import { Resend } from 'resend'
3+
4+
export const resend = new Resend(env.RESEND_API_KEY)

src/services/users/send-code.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import { CodeGeneratedRecentlyError } from '../errors/code-generated-recently-er
44
import { UserNotExistsError } from '../errors/user-not-exists-error'
55

66
import { generateAuthCode } from '@/lib/nanoid'
7-
import { sendMail } from '@/lib/nodemailer'
7+
import { resend } from '@/lib/resend'
88
import dayjs from 'dayjs'
99
import { UnableToSendEmailError } from '../errors/unable-to-send-email-error'
1010

@@ -52,7 +52,8 @@ export class SendCodeService {
5252
},
5353
})
5454

55-
const emailSent = await sendMail({
55+
const emailSent = await resend.emails.send({
56+
from: 'Pizza Stars <suporte@pizzastars.com>',
5657
to: email,
5758
subject: `Seu código Pizza Stars é ${code}`,
5859
text: `Aqui está seu código: ${code}`,
@@ -145,13 +146,12 @@ export class SendCodeService {
145146
</body>
146147
</html>
147148
`,
148-
priority: 'high',
149149
})
150150

151-
if (!emailSent.messageId) {
151+
if (emailSent.error) {
152152
throw new UnableToSendEmailError()
153153
}
154154

155-
return { messageId: emailSent.messageId }
155+
return { messageId: emailSent.data.id }
156156
}
157157
}

0 commit comments

Comments
 (0)