diff --git a/package.json b/package.json index b587606..3a5a08f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "harmony-back", - "version": "0.11.16", + "version": "0.11.17", "private": true, "description": "A Strapi application", "scripts": { diff --git a/src/api/post/controllers/post.ts b/src/api/post/controllers/post.ts index 62c9b31..cd15d1b 100644 --- a/src/api/post/controllers/post.ts +++ b/src/api/post/controllers/post.ts @@ -243,7 +243,24 @@ export default factories.createCoreController( // Créer un map pour un accès rapide aux groupes par ID const groupsMap = new Map(allGroups.map((group) => [group.id, group])); - // 6️⃣ Enrichir le feed avec les propriétés friend, member, contactFollow et group + // 5.1️⃣ Récupérer tous les événements liés dans le feed + const linkedEventIds = filteredFeed + .filter((po) => po.contextType === "event" && po.relation === "link") + .map((po) => po.contextId); + const linkedEventsMap = new Map(); + if (linkedEventIds.length > 0) { + const eventRelationships = await strapi.db + .query("api::event-relationship.event-relationship") + .findMany({ + where: { event: { id: linkedEventIds } }, + populate: ["event"], + }); + eventRelationships.forEach((relationship) => { + linkedEventsMap.set(relationship.event.id, relationship); + }); + } + + // 6️⃣ Enrichir le feed avec les propriétés friend, member, contactFollow, group et linkedEvent const enrichedFeed = filteredFeed.map((postOwnership) => { const authorId = postOwnership.author?.id; const contextType = postOwnership.contextType; @@ -270,15 +287,27 @@ export default factories.createCoreController( ? groupsMap.get(contextId) : null; + // Ajouter l'événement lié si contextType est "event" et relation est "link" + const linkedEvent = + contextType === "event" && + postOwnership.relation === "link" && + contextId + ? linkedEventsMap.get(contextId) + : null; + return { ...postOwnership, + post: { + ...postOwnership.post, + ...(linkedEvent && { linkedEvent }), + }, friend: isFriend, contactFollow: isContactFollow, member: isMember, blocked: isBlocked, contextType, contextId, - ...(group && { group }), // Ajouter group seulement s'il existe + ...(group && { group }), }; }); diff --git a/src/extensions/documentation/documentation/1.0.0/full_documentation.json b/src/extensions/documentation/documentation/1.0.0/full_documentation.json index f2762f7..2fb2d79 100644 --- a/src/extensions/documentation/documentation/1.0.0/full_documentation.json +++ b/src/extensions/documentation/documentation/1.0.0/full_documentation.json @@ -14,7 +14,7 @@ "name": "Apache 2.0", "url": "https://www.apache.org/licenses/LICENSE-2.0.html" }, - "x-generation-date": "2025-11-07T14:28:24.261Z" + "x-generation-date": "2025-11-08T23:22:04.498Z" }, "x-strapi-config": { "plugins": [