Add minor improvements to notifyExpiredTokens

This commit is contained in:
carlosmonastyrski
2025-04-14 21:52:16 -03:00
parent cac4f30ca8
commit 86d7fca8fb
3 changed files with 9 additions and 6 deletions
@@ -77,7 +77,7 @@ export const dailyResourceCleanUpQueueServiceFactory = ({
await queueService.queue(QueueName.DailyResourceCleanUp, QueueJobs.DailyResourceCleanUp, undefined, { await queueService.queue(QueueName.DailyResourceCleanUp, QueueJobs.DailyResourceCleanUp, undefined, {
delay: 5000, delay: 5000,
jobId: QueueName.DailyResourceCleanUp, jobId: QueueName.DailyResourceCleanUp,
repeat: { pattern: "0 0 * * *", utc: true } repeat: { pattern: "* * * * *", utc: true }
}); });
}; };
@@ -41,6 +41,7 @@ export const serviceTokenDALFactory = (db: TDbClient) => {
.whereRaw( .whereRaw(
`${TableName.ServiceToken}."expiresAt" < NOW() AND ${TableName.ServiceToken}."notificationSent" = false` `${TableName.ServiceToken}."expiresAt" < NOW() AND ${TableName.ServiceToken}."notificationSent" = false`
) )
.whereNotNull(`${TableName.Users}.email`)
.select(`${TableName.ServiceToken}.name`) .select(`${TableName.ServiceToken}.name`)
.select(`${TableName.ServiceToken}.id`) .select(`${TableName.ServiceToken}.id`)
.select(`${TableName.Project}.name as projectName`) .select(`${TableName.Project}.name as projectName`)
@@ -26,6 +26,7 @@ import {
TGetServiceTokenInfoDTO, TGetServiceTokenInfoDTO,
TProjectServiceTokensDTO TProjectServiceTokensDTO
} from "./service-token-types"; } from "./service-token-types";
import { logger } from "@app/lib/logger";
type TServiceTokenServiceFactoryDep = { type TServiceTokenServiceFactoryDep = {
serviceTokenDAL: TServiceTokenDALFactory; serviceTokenDAL: TServiceTokenDALFactory;
@@ -196,8 +197,8 @@ export const serviceTokenServiceFactory = ({
await Promise.all( await Promise.all(
expiredTokens.map(async (token) => { expiredTokens.map(async (token) => {
await smtpService try {
.sendMail({ await smtpService.sendMail({
recipients: [token.createdByEmail], recipients: [token.createdByEmail],
subjectLine: "Service Token Expired", subjectLine: "Service Token Expired",
template: SmtpTemplates.ServiceTokenExpired, template: SmtpTemplates.ServiceTokenExpired,
@@ -206,10 +207,11 @@ export const serviceTokenServiceFactory = ({
projectName: token.projectName, projectName: token.projectName,
url: `${appCfg.SITE_URL}/secret-manager/${token.projectId}/access-management?selectedTab=service-tokens` url: `${appCfg.SITE_URL}/secret-manager/${token.projectId}/access-management?selectedTab=service-tokens`
} }
})
.then(async () => {
await serviceTokenDAL.update({ id: token.id }, { notificationSent: true });
}); });
await serviceTokenDAL.update({ id: token.id }, { notificationSent: true });
} catch (error) {
logger.error(error, `Failed to send expiration notification for token ${token.id}:`);
}
}) })
); );
}; };