0.12.15 : add activity as a service

This commit is contained in:
2025-12-11 17:32:27 +01:00
parent b33e04d9f4
commit e9505524bf
5 changed files with 59 additions and 18 deletions
@@ -22,6 +22,12 @@ module.exports = {
// On s'assure que le receiver et le sender existent bien
if (user && owner) {
try {
await strapi.service("api::notification.notification")?.addActivity({
userId: owner.id,
activityMessage: `${owner.username} a invité ${user.username} à être ami avec lui.`,
activityUser: user.username,
activityType: "user",
});
// Appel du service de notification
await strapi
.service("api::notification.notification")
@@ -20,6 +20,14 @@ interface NotificationEntity {
updatedAt: string;
}
interface ActivityPayload {
userId: number;
activityMessage: string;
activityUser: string;
activityType: string;
activityAvatar?: number;
}
/**
* notification service
*/
@@ -47,5 +55,40 @@ export default factories.createCoreService(
strapi.log.info(`🔔 Notification créée: ${title}`);
return notification;
},
async addActivity({
userId,
activityMessage,
activityUser,
activityType,
}: ActivityPayload): Promise<void> {
const user = await strapi.entityService.findOne(
"plugin::users-permissions.user",
userId,
{ populate: ["activities", "avatar"] }
);
const existingActivities = user?.activities || [];
const newActivity = {
activityMessage,
activityUser,
activityDate: new Date(),
activityType,
activityAvatar: user.avatar?.id,
};
await strapi.entityService.update(
"plugin::users-permissions.user",
userId,
{
data: {
activities: [...existingActivities, newActivity],
},
}
);
strapi.log.info(
`✅ Activity added for user ${activityUser}: ${activityMessage}`
);
},
})
);