From 7575f263d70efb35a8b664f605f823586cf422c5 Mon Sep 17 00:00:00 2001 From: Shivam Vijaywargi Date: Mon, 9 Dec 2024 21:25:04 +0530 Subject: [PATCH] =?UTF-8?q?refactor:=20activity=20for=20add=20users=20to?= =?UTF-8?q?=20group=E2=99=BB=EF=B8=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/modules/activities/activity.utils.ts | 73 ++++++++++++++++++++---- 1 file changed, 62 insertions(+), 11 deletions(-) diff --git a/src/modules/activities/activity.utils.ts b/src/modules/activities/activity.utils.ts index 7d912b0..c1024ce 100644 --- a/src/modules/activities/activity.utils.ts +++ b/src/modules/activities/activity.utils.ts @@ -1,3 +1,4 @@ +import { ActivityType } from "@/common/enums"; import { activityModel } from "@/db/schemas"; import type { TSelectActivitySchema } from "@/db/schemas/activity.model"; @@ -18,36 +19,86 @@ export function organizeActivities( userId: string | undefined, ) { return activities.map((activity) => { - return formatCategoryActivity( - activity.id, - activity.metadata as IActivityMetadata, - userId, - ); + if (activity.type.includes("category")) { + return formatCategoryActivity( + activity.id, + activity.metadata as IActivityMetadata, + userId, + ); + } + + if (activity.type.includes("group")) { + return formatGroupActivity( + activity.id, + activity.metadata as IActivityMetadata, + userId, + activity.type, + ); + } + + return { + id: activity.id, + message: "Unknown activity", + }; }); } function formatCategoryActivity( id: string, - activity: IActivityMetadata, + activityMetadata: IActivityMetadata, userId: string | undefined, ) { - switch (activity.action) { + switch (activityMetadata.action) { + case "create": + return { + id, + message: `${userId ? activityMetadata.actorName : "You"} created a new category "${activityMetadata.resourceName}"`, + }; + case "update": + return { + id, + message: `${userId ? activityMetadata.actorName : "You"} updated the category "${activityMetadata.resourceName}"`, + }; + case "delete": + return { + id, + message: `${userId ? activityMetadata.actorName : "You"} deleted the category "${activityMetadata.resourceName}"`, + }; + default: + return { id: "", message: "Unknown category activityMetadata" }; + } +} + +function formatGroupActivity( + id: string, + activityMetadata: IActivityMetadata, + userId: string | undefined, + activityType: string, +) { + if (activityType === ActivityType.GROUP_MEMBER_ADDED) { + return { + id, + message: `${userId ? activityMetadata.actorName : "You"} added ${activityMetadata.targetName} to the Group "${activityMetadata.resourceName}"`, + }; + } + + switch (activityMetadata.action) { case "create": return { id, - message: `${userId ? activity.actorName : "You"} created a new category "${activity.resourceName}"`, + message: `${userId ? activityMetadata.actorName : "You"} created a new Group "${activityMetadata.resourceName}"`, }; case "update": return { id, - message: `${userId ? activity.actorName : "You"} updated the category "${activity.resourceName}"`, + message: `${userId ? activityMetadata.actorName : "You"} updated the Group "${activityMetadata.resourceName}"`, }; case "delete": return { id, - message: `${userId ? activity.actorName : "You"} deleted the category "${activity.resourceName}"`, + message: `${userId ? activityMetadata.actorName : "You"} deleted the Group "${activityMetadata.resourceName}"`, }; default: - return { id: "", message: "Unknown category activity" }; + return { id: "", message: "Unknown group activityMetadata" }; } }