add: more commits

Signed-off-by: Kenneth Obsequio <k80308392@gmail.com>
This commit is contained in:
2026-07-03 21:40:24 +08:00
parent 1d12f04967
commit a572c1e25f
17 changed files with 476 additions and 302 deletions
+6 -2
View File
@@ -32,7 +32,7 @@ const PendingCertificate = require('../../models/courses/pending_certificate.mdl
const mdl_Achievements = require('../../models/users/achievements.mdl');
const UserNotification = require('../../models/notifications/user_notification.mdl');
const CronNotificationSetting = require('../../models/notifications/cron_notification_setting.mdl');
const { NOTIFICATION_REGISTRY } = require('../../data/notifications.data');
const { getNotificationTemplate, renderNotificationContent } = require('../../services/notificationTemplate.service');
const { ensureCertificateRecord } = require('../../services/certificate-record.service');
async function run() {
@@ -59,6 +59,10 @@ async function run() {
console.log(`[CRON][ISSUE CERTS] Processing ${rows.length} pending certificate(s).`);
// Fetched once outside the loop — content differs per row (courseTitle),
// but there's no need to re-query the template for every row.
const certificateTemplate = notificationsEnabled ? await getNotificationTemplate('certificate_issued') : null;
for (const row of rows) {
const { pending_id, user_id, course_uuid, course_title } = row;
const achKey = `course_completed_${course_uuid}`;
@@ -87,7 +91,7 @@ async function run() {
if (notificationsEnabled) {
await UserNotification.create({
user_id,
...NOTIFICATION_REGISTRY.certificate_issued.build({
...renderNotificationContent(certificateTemplate, {
courseTitle: course_title ?? '',
courseUuid: course_uuid,
}),