Skip to content

Commit fe4a047

Browse files
Merge pull request #159 from geturbackend/coderabbitai/chat/5cb0cee
📝 CodeRabbit Chat: Implement requested code changes
2 parents 5cb0cee + e91893f commit fe4a047

2 files changed

Lines changed: 11 additions & 19 deletions

File tree

apps/public-api/src/__tests__/mail.controller.test.js

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -186,9 +186,8 @@ describe('mail.controller', () => {
186186
attemptsMade: 3
187187
};
188188

189-
if (failedHandler) {
190-
await failedHandler(mockJob, new Error("Terminal failure"));
191-
}
189+
expect(failedHandler).toBeDefined();
190+
await failedHandler(mockJob, new Error("Terminal failure"));
192191

193192
expect(mockRedis.eval).toHaveBeenCalledWith(
194193
expect.any(String), 1, 'project:mail:count:proj_1:2026-05'
@@ -222,9 +221,8 @@ describe('mail.controller', () => {
222221
attemptsMade: 1 // Not terminal yet
223222
};
224223

225-
if (failedHandler) {
226-
await failedHandler(mockJob, new Error("Temporary failure"));
227-
}
224+
expect(failedHandler).toBeDefined();
225+
await failedHandler(mockJob, new Error("Temporary failure"));
228226

229227
expect(mockRedis.eval).not.toHaveBeenCalled();
230228
});

packages/common/src/queues/publicEmailQueue.js

Lines changed: 7 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,7 @@ const initPublicEmailWorker = () => {
1818
// Initialize Worker with Rate Limiting (10 per second to respect Resend limits)
1919
worker = new Worker('public-email-queue', async (job) => {
2020
const { projectId, payload, usingByok, consumedQuotaKey } = job.data;
21-
22-
try {
23-
21+
2422
let clientKey = process.env.RESEND_API_KEY_2 || process.env.RESEND_API_KEY;
2523
let fromAddress = process.env.EMAIL_FROM || "urBackend <urbackend@apps.bitbros.in>";
2624

@@ -31,8 +29,8 @@ const initPublicEmailWorker = () => {
3129
const decrypted = decrypt(project.resendApiKey);
3230
if (typeof decrypted === 'string' && decrypted.trim().length > 0) {
3331
clientKey = decrypted.trim();
34-
fromAddress = project.resendFromEmail && project.resendFromEmail.trim()
35-
? project.resendFromEmail.trim()
32+
fromAddress = project.resendFromEmail && project.resendFromEmail.trim()
33+
? project.resendFromEmail.trim()
3634
: "onboarding@resend.dev";
3735
}
3836
}
@@ -65,18 +63,15 @@ const initPublicEmailWorker = () => {
6563
const maskedTo = toList.map(redact).join(', ');
6664

6765
console.log(`[Queue] Processing public email to: ${maskedTo}`);
68-
66+
6967
const { data, error } = await resend.emails.send(finalPayload);
70-
68+
7169
if (error) {
7270
console.error(`[Queue] Failed to send public email to ${maskedTo}:`, error);
7371
throw new Error(error.message || "Failed to send email");
7472
}
75-
73+
7674
return { data };
77-
} catch (err) {
78-
throw err;
79-
}
8075
}, {
8176
connection,
8277
limiter: {
@@ -94,8 +89,7 @@ const initPublicEmailWorker = () => {
9489
if (job && job.data && job.data.consumedQuotaKey) {
9590
const maxAttempts = job.opts?.attempts || 1;
9691
if (job.attemptsMade >= maxAttempts) {
97-
const luaScript = DECR_IF_EXISTS_SCRIPT;
98-
await connection.eval(luaScript, 1, job.data.consumedQuotaKey).catch(() => {});
92+
await connection.eval(DECR_IF_EXISTS_SCRIPT, 1, job.data.consumedQuotaKey).catch(() => {});
9993
}
10094
}
10195
});

0 commit comments

Comments
 (0)