0.12.15 : add activity as a service
Some checks failed
Build release Docker image / Build Docker Images (push) Failing after 8s

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

View File

@@ -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")

View File

@@ -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}`
);
},
})
);

View File

@@ -14,7 +14,7 @@
"name": "Apache 2.0",
"url": "https://www.apache.org/licenses/LICENSE-2.0.html"
},
"x-generation-date": "2025-12-11T14:30:17.431Z"
"x-generation-date": "2025-12-11T16:29:12.158Z"
},
"x-strapi-config": {
"plugins": [

View File

@@ -531,24 +531,16 @@ module.exports = (plugin) => {
async afterCreate(event) {
const { result } = event;
const newActivity = {
activityMessage: `Bienvenue ${result.username}, Ton compte est maintenant activé.`,
activityUser: result.username,
activityDate: new Date(),
activityType: "user" as const,
};
await sendConfirmationEmail(result);
await strapi.entityService.update(
"plugin::users-permissions.user",
result.id,
{
data: {
activities: [newActivity],
},
}
);
await strapi
.service("api::notification.notification")
?.addActivity({
userId: result.id,
activityMessage: `Bienvenue ${result.username}, Ton compte est maintenant activé.`,
activityUser: result.username,
activityType: "user",
});
// Appel du service de notification
await strapi