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

@@ -1,6 +1,6 @@
{ {
"name": "harmony-back", "name": "harmony-back",
"version": "0.12.14", "version": "0.12.15",
"private": true, "private": true,
"description": "A Strapi application", "description": "A Strapi application",
"scripts": { "scripts": {

View File

@@ -22,6 +22,12 @@ module.exports = {
// On s'assure que le receiver et le sender existent bien // On s'assure que le receiver et le sender existent bien
if (user && owner) { if (user && owner) {
try { 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 // Appel du service de notification
await strapi await strapi
.service("api::notification.notification") .service("api::notification.notification")

View File

@@ -20,6 +20,14 @@ interface NotificationEntity {
updatedAt: string; updatedAt: string;
} }
interface ActivityPayload {
userId: number;
activityMessage: string;
activityUser: string;
activityType: string;
activityAvatar?: number;
}
/** /**
* notification service * notification service
*/ */
@@ -47,5 +55,40 @@ export default factories.createCoreService(
strapi.log.info(`🔔 Notification créée: ${title}`); strapi.log.info(`🔔 Notification créée: ${title}`);
return notification; 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", "name": "Apache 2.0",
"url": "https://www.apache.org/licenses/LICENSE-2.0.html" "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": { "x-strapi-config": {
"plugins": [ "plugins": [

View File

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