0.12.15 : add activity as a service
Some checks failed
Build release Docker image / Build Docker Images (push) Failing after 8s
Some checks failed
Build release Docker image / Build Docker Images (push) Failing after 8s
This commit is contained in:
@@ -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": {
|
||||||
|
|||||||
@@ -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")
|
||||||
|
|||||||
@@ -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}`
|
||||||
|
);
|
||||||
|
},
|
||||||
})
|
})
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -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": [
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user