From 717534a8fcb1821a69cb43f6befcfb4263bdef99 Mon Sep 17 00:00:00 2001 From: Mohamed Dawoud Date: Fri, 18 Apr 2025 22:38:26 +0200 Subject: [PATCH 1/7] feat: add activity logs for `createTeam` function --- src/controllers/team.controller.js | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/controllers/team.controller.js b/src/controllers/team.controller.js index bc925e8..57924ce 100644 --- a/src/controllers/team.controller.js +++ b/src/controllers/team.controller.js @@ -8,6 +8,10 @@ import { createTeamValidation, updateTeamValidation, } from '../validations/team.validation.js'; +import { + createActivityLog, + generateActivityDetails, +} from '../utils/activityLogs.utils.js'; /** * Helper function to validate required params @@ -268,6 +272,19 @@ export const createTeam = async (req, res, next) => { return { team, leaderMember, allTeamMembers }; }); + await createActivityLog({ + entityType: 'TEAM', + action: 'CREATED', + userId: req.user.id, + organizationId, + teamId: result.team.id, + details: generateActivityDetails('CREATED', null, { + teamName: result.team.name, + teamDescription: result.team.description, + createdBy: req.user.id, + }), + }); + return res.status(201).json({ success: true, message: `Team created successfully.`, From cd339671a0ee13a9c657b71b069ee4a35151c1f8 Mon Sep 17 00:00:00 2001 From: Mohamed Dawoud Date: Fri, 18 Apr 2025 22:40:43 +0200 Subject: [PATCH 2/7] feat: add activity logs for `addTeamMember` function --- src/controllers/team.controller.js | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/controllers/team.controller.js b/src/controllers/team.controller.js index 57924ce..a0f68b9 100644 --- a/src/controllers/team.controller.js +++ b/src/controllers/team.controller.js @@ -453,6 +453,18 @@ export const addTeamMember = async (req, res, next) => { return { newMembers, allTeamMembers }; }); + await createActivityLog({ + entityType: 'TEAM', + action: 'MEMBER_ADDED', + userId: req.user.id, + organizationId, + teamId, + details: generateActivityDetails('MEMBER_ADDED', null, { + newMembers: result.newMembers, + addedBy: req.user.id, + }), + }); + return res.status(200).json({ success: true, message: `Members added successfully.`, From 08f1af6782dc109a75e8fc50154a1787b864f8e2 Mon Sep 17 00:00:00 2001 From: Mohamed Dawoud Date: Fri, 18 Apr 2025 22:42:20 +0200 Subject: [PATCH 3/7] feat: add activity logs for `removeTeamMember` function --- src/controllers/team.controller.js | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/controllers/team.controller.js b/src/controllers/team.controller.js index a0f68b9..a58c7b6 100644 --- a/src/controllers/team.controller.js +++ b/src/controllers/team.controller.js @@ -606,6 +606,19 @@ export const removeTeamMember = async (req, res, next) => { }, }); + await createActivityLog({ + entityType: 'TEAM', + action: 'MEMBER_REMOVED', + userId: req.user.id, + organizationId, + teamId, + details: generateActivityDetails('MEMBER_REMOVED', null, { + removedMember, + removedBy: req.user.id, + removedAt: new Date(), + }), + }); + return res.status(200).json({ success: true, message: `Team member ${removedMember.user.firstName} ${removedMember.user.lastName} removed successfully`, From 3555e611972133f65ac34cb46be6a4126438dffb Mon Sep 17 00:00:00 2001 From: Mohamed Dawoud Date: Fri, 18 Apr 2025 22:44:01 +0200 Subject: [PATCH 4/7] feat: add activity logs for `updateTeam` function --- src/controllers/team.controller.js | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/controllers/team.controller.js b/src/controllers/team.controller.js index a58c7b6..209bd3b 100644 --- a/src/controllers/team.controller.js +++ b/src/controllers/team.controller.js @@ -742,6 +742,15 @@ export const updateTeam = async (req, res, next) => { data: { name, description, avatar }, }); + await createActivityLog({ + entityType: 'TEAM', + action: 'UPDATED', + userId: req.user.id, + organizationId, + teamId, + details: generateActivityDetails('UPDATED', existingOrg, updatedTeam), + }); + res.status(200).json({ success: true, team: updatedTeam, From f4d060b733776234406cd407c9206dd34d9536c9 Mon Sep 17 00:00:00 2001 From: Mohamed Dawoud Date: Fri, 18 Apr 2025 22:45:20 +0200 Subject: [PATCH 5/7] feat: add activity logs for `uploadTeamAvatar` function --- src/controllers/team.controller.js | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/controllers/team.controller.js b/src/controllers/team.controller.js index 209bd3b..e32875e 100644 --- a/src/controllers/team.controller.js +++ b/src/controllers/team.controller.js @@ -840,6 +840,18 @@ export const uploadTeamAvatar = async (req, res, next) => { data: { avatar }, }); + await createActivityLog({ + entityType: 'TEAM', + action: 'UPDATED', + userId: req.user.id, + organizationId, + teamId, + details: { + action: 'AVATAR_UPLOADED', + uploadedAt: new Date(), + }, + }); + res.status(200).json({ success: true, message: 'Team avatar uploaded successfully', From aab9fd303c24691a89a8dafd956d41cc65ba2d68 Mon Sep 17 00:00:00 2001 From: Mohamed Dawoud Date: Fri, 18 Apr 2025 22:46:13 +0200 Subject: [PATCH 6/7] feat: add activity logs for `deleteTeamAvatar` function --- src/controllers/team.controller.js | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/controllers/team.controller.js b/src/controllers/team.controller.js index e32875e..3319de5 100644 --- a/src/controllers/team.controller.js +++ b/src/controllers/team.controller.js @@ -931,6 +931,19 @@ export const deleteTeamAvatar = async (req, res, next) => { data: { avatar: null }, }); + await createActivityLog({ + entityType: 'TEAM', + action: 'UPDATED', + userId: req.user.id, + organizationId, + teamId, + details: { + action: 'AVATAR_REMOVED', + removedAt: new Date(), + removedBy: req.user.id, + }, + }); + res.status(200).json({ message: 'Team avatar deleted successfully', team: updatedTeam, From a0032be644641a2bef1a990e98b2ccb0353991b0 Mon Sep 17 00:00:00 2001 From: Mohamed Dawoud Date: Fri, 18 Apr 2025 22:46:57 +0200 Subject: [PATCH 7/7] feat: add activity logs for `deleteTeam` function --- src/controllers/team.controller.js | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/controllers/team.controller.js b/src/controllers/team.controller.js index 3319de5..9e3aa13 100644 --- a/src/controllers/team.controller.js +++ b/src/controllers/team.controller.js @@ -1019,6 +1019,19 @@ export const deleteTeam = async (req, res, next) => { data: { deletedAt: new Date() }, }); + await createActivityLog({ + entityType: 'TEAM', + action: 'DELETED', + userId: req.user.id, + organizationId, + teamId: team.id, + details: generateActivityDetails('DELETED', team, { + deletedAt: new Date(), + deletedBy: req.user.id, + teamName: team.name, + }), + }); + return res.status(200).json({ success: true, message: 'Team deleted successfully',