diff --git a/controllers/notification_error_log.controller.js b/controllers/notification_error_log.controller.js index d928a77..2152d11 100644 --- a/controllers/notification_error_log.controller.js +++ b/controllers/notification_error_log.controller.js @@ -55,20 +55,7 @@ class NotificationErrorLogController { return res.status(400).json(setResponse(error, 'Validation failed', 400)); } - let createdBy, contactPhone; - - if (!isNaN(req.user.userId) && Number(req.user.userId) > 0) { - createdBy = Number(req.user.userId); - contactPhone = value.contact_phone || null; - } else { - createdBy = null; - contactPhone = req.user.userId; - } - - value.created_by = createdBy; - value.contact_phone = contactPhone; - - const results = await NotificationErrorLogService.createNotificationErrorLog(value); + const results = await NotificationErrorLogService.createNotificationErrorLog(value, req.user.user_id); const response = await setResponse(results, 'Notification Error Log created successfully') return res.status(response.statusCode).json(response); diff --git a/db/notification_error_log.db.js b/db/notification_error_log.db.js index 8c8a4d9..84dc0e2 100644 --- a/db/notification_error_log.db.js +++ b/db/notification_error_log.db.js @@ -45,7 +45,27 @@ const getNotificationErrorLogByNotificationErrorIdDb = async (notificationErrorI }; const createNotificationErrorLogDb = async (store) => { - const { query: queryText, values } = pool.buildDynamicInsert("notification_error_log", store); + const queryText = ` + INSERT INTO notification_error_log ( + notification_error_id, + contact_phone, + notification_error_log_description, + created_by, + updated_by, + created_at, + updated_at + ) + VALUES ($1, $2, $3, $4, $4, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP); + SELECT SCOPE_IDENTITY() as inserted_id; + `; + + const values = [ + store.notification_error_id, + store.contact_phone, + store.notification_error_log_description, + store.created_by + ]; + const result = await pool.query(queryText, values); const insertedId = result.recordset[0]?.inserted_id; return insertedId ? await getNotificationErrorLogByIdDb(insertedId) : null; diff --git a/services/notification_error_log.service.js b/services/notification_error_log.service.js index b36a5b8..d56bcd9 100644 --- a/services/notification_error_log.service.js +++ b/services/notification_error_log.service.js @@ -7,6 +7,7 @@ const { deleteNotificationErrorLogDb } = require('../db/notification_error_log.db'); +const { getUserByIdDb } = require('../db/user.db'); const { ErrorHandler } = require('../helpers/error'); class NotificationErrorLogService { @@ -40,15 +41,34 @@ class NotificationErrorLogService { } // Create Notification Error Log - static async createNotificationErrorLog(data) { + static async createNotificationErrorLog(data, userId) { try { if (!data || typeof data !== 'object') data = {}; + let createdBy = null; + let contactPhone = data.contact_phone || null; + + if (userId) { + try { + const user = await getUserByIdDb(userId); + + if (user && user.user_id) { + createdBy = Number(user.user_id); + } else { + createdBy = null; + contactPhone = userId; + } + } catch (dbError) { + createdBy = null; + contactPhone = userId; + } + } + const store = { notification_error_id: data.notification_error_id, - contact_phone: data.contact_phone, + contact_phone: contactPhone, notification_error_log_description: data.notification_error_log_description, - created_by: data.created_by + created_by: createdBy }; const result = await createNotificationErrorLogDb(store);