0.11.21 : change on event and group

This commit is contained in:
2025-11-11 02:04:43 +01:00
parent 14e013bac1
commit 2bc35b639b
8 changed files with 234 additions and 32 deletions

View File

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

View File

@@ -75,6 +75,16 @@ export default ({ strapi }: { strapi: Core.Strapi }) =>
`Event ${event.id} created by user ${userId} with owner relationship ${ownerRelationship.id}` `Event ${event.id} created by user ${userId} with owner relationship ${ownerRelationship.id}`
); );
if (contextType === "group") {
await strapi
.service("api::group.group")
.addActivity(
contextId,
ctx.state.user?.username || `User ${userId}`,
`Evènement créé : ${event.title}`
);
}
ctx.send({ data: event }, 201); ctx.send({ data: event }, 201);
} catch (error) { } catch (error) {
strapi.log.error("Error in create event controller:", error); strapi.log.error("Error in create event controller:", error);

View File

@@ -32,7 +32,8 @@
"owner", "owner",
"follow", "follow",
"pending", "pending",
"invited" "invited",
"rejected"
] ]
} }
} }

View File

@@ -4,4 +4,25 @@
import { factories } from '@strapi/strapi'; import { factories } from '@strapi/strapi';
export default factories.createCoreService('api::group.group'); export default factories.createCoreService('api::group.group', ({ strapi }) => ({
async addActivity(groupId: number, userName: string, message: string) {
const group = await strapi.entityService.findOne('api::group.group', groupId, {
populate: ['activities'],
}) as any;
if (!group) {
throw new Error(`Group with id ${groupId} not found`);
}
const activities = group.activities || [];
activities.push({
activityUser: userName,
activityMessage: message,
activityDate: new Date(),
});
return await strapi.entityService.update('api::group.group', groupId, {
data: { activities },
});
},
}));

View File

@@ -14,6 +14,17 @@
}, },
"activityDate": { "activityDate": {
"type": "datetime" "type": "datetime"
},
"activityAvatar": {
"type": "media",
"multiple": false,
"required": false,
"allowedTypes": [
"images",
"files",
"videos",
"audios"
]
} }
} }
} }

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-11-10T22:10:01.518Z" "x-generation-date": "2025-11-11T01:04:38.039Z"
}, },
"x-strapi-config": { "x-strapi-config": {
"plugins": [ "plugins": [
@@ -17091,7 +17091,8 @@
"owner", "owner",
"follow", "follow",
"pending", "pending",
"invited" "invited",
"rejected"
] ]
}, },
"createdAt": { "createdAt": {
@@ -18189,6 +18190,135 @@
"activityDate": { "activityDate": {
"type": "string", "type": "string",
"format": "date-time" "format": "date-time"
},
"activityAvatar": {
"type": "object",
"properties": {
"id": {
"type": "number"
},
"documentId": {
"type": "string"
},
"name": {
"type": "string"
},
"alternativeText": {
"type": "string"
},
"caption": {
"type": "string"
},
"width": {
"type": "integer"
},
"height": {
"type": "integer"
},
"formats": {},
"hash": {
"type": "string"
},
"ext": {
"type": "string"
},
"mime": {
"type": "string"
},
"size": {
"type": "number",
"format": "float"
},
"url": {
"type": "string"
},
"previewUrl": {
"type": "string"
},
"provider": {
"type": "string"
},
"provider_metadata": {},
"related": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "number"
},
"documentId": {
"type": "string"
}
}
}
},
"folder": {
"type": "object",
"properties": {
"id": {
"type": "number"
},
"documentId": {
"type": "string"
}
}
},
"folderPath": {
"type": "string"
},
"createdAt": {
"type": "string",
"format": "date-time"
},
"updatedAt": {
"type": "string",
"format": "date-time"
},
"publishedAt": {
"type": "string",
"format": "date-time"
},
"createdBy": {
"type": "object",
"properties": {
"id": {
"type": "number"
},
"documentId": {
"type": "string"
}
}
},
"updatedBy": {
"type": "object",
"properties": {
"id": {
"type": "number"
},
"documentId": {
"type": "string"
}
}
},
"locale": {
"type": "string"
},
"localizations": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "number"
},
"documentId": {
"type": "string"
}
}
}
}
}
} }
} }
}, },
@@ -20554,7 +20684,8 @@
"owner", "owner",
"follow", "follow",
"pending", "pending",
"invited" "invited",
"rejected"
] ]
}, },
"createdAt": { "createdAt": {
@@ -24484,7 +24615,8 @@
"owner", "owner",
"follow", "follow",
"pending", "pending",
"invited" "invited",
"rejected"
] ]
}, },
"createdAt": { "createdAt": {
@@ -27973,7 +28105,8 @@
"owner", "owner",
"follow", "follow",
"pending", "pending",
"invited" "invited",
"rejected"
] ]
}, },
"createdAt": { "createdAt": {
@@ -31910,7 +32043,8 @@
"owner", "owner",
"follow", "follow",
"pending", "pending",
"invited" "invited",
"rejected"
] ]
}, },
"createdAt": { "createdAt": {
@@ -36098,7 +36232,8 @@
"owner", "owner",
"follow", "follow",
"pending", "pending",
"invited" "invited",
"rejected"
] ]
}, },
"createdAt": { "createdAt": {
@@ -40735,7 +40870,8 @@
"owner", "owner",
"follow", "follow",
"pending", "pending",
"invited" "invited",
"rejected"
] ]
}, },
"createdAt": { "createdAt": {
@@ -44662,7 +44798,8 @@
"owner", "owner",
"follow", "follow",
"pending", "pending",
"invited" "invited",
"rejected"
] ]
}, },
"createdAt": { "createdAt": {
@@ -48491,7 +48628,8 @@
"owner", "owner",
"follow", "follow",
"pending", "pending",
"invited" "invited",
"rejected"
] ]
}, },
"createdAt": { "createdAt": {
@@ -52307,7 +52445,8 @@
"owner", "owner",
"follow", "follow",
"pending", "pending",
"invited" "invited",
"rejected"
] ]
}, },
"createdAt": { "createdAt": {
@@ -56159,7 +56298,8 @@
"owner", "owner",
"follow", "follow",
"pending", "pending",
"invited" "invited",
"rejected"
] ]
}, },
"createdAt": { "createdAt": {
@@ -60011,7 +60151,8 @@
"owner", "owner",
"follow", "follow",
"pending", "pending",
"invited" "invited",
"rejected"
] ]
}, },
"createdAt": { "createdAt": {
@@ -63824,7 +63965,8 @@
"owner", "owner",
"follow", "follow",
"pending", "pending",
"invited" "invited",
"rejected"
] ]
}, },
"createdAt": { "createdAt": {
@@ -67818,7 +67960,8 @@
"owner", "owner",
"follow", "follow",
"pending", "pending",
"invited" "invited",
"rejected"
] ]
}, },
"createdAt": { "createdAt": {
@@ -71301,7 +71444,8 @@
"owner", "owner",
"follow", "follow",
"pending", "pending",
"invited" "invited",
"rejected"
] ]
}, },
"createdAt": { "createdAt": {
@@ -75713,7 +75857,8 @@
"owner", "owner",
"follow", "follow",
"pending", "pending",
"invited" "invited",
"rejected"
] ]
}, },
"createdAt": { "createdAt": {
@@ -80588,7 +80733,8 @@
"owner", "owner",
"follow", "follow",
"pending", "pending",
"invited" "invited",
"rejected"
] ]
}, },
"createdAt": { "createdAt": {
@@ -80762,7 +80908,8 @@
"owner", "owner",
"follow", "follow",
"pending", "pending",
"invited" "invited",
"rejected"
] ]
}, },
"locale": { "locale": {
@@ -83635,7 +83782,8 @@
"owner", "owner",
"follow", "follow",
"pending", "pending",
"invited" "invited",
"rejected"
] ]
}, },
"createdAt": { "createdAt": {
@@ -84480,7 +84628,8 @@
"owner", "owner",
"follow", "follow",
"pending", "pending",
"invited" "invited",
"rejected"
] ]
}, },
"createdAt": { "createdAt": {
@@ -87468,7 +87617,8 @@
"owner", "owner",
"follow", "follow",
"pending", "pending",
"invited" "invited",
"rejected"
] ]
}, },
"createdAt": { "createdAt": {
@@ -91406,7 +91556,8 @@
"owner", "owner",
"follow", "follow",
"pending", "pending",
"invited" "invited",
"rejected"
] ]
}, },
"createdAt": { "createdAt": {
@@ -95245,7 +95396,8 @@
"owner", "owner",
"follow", "follow",
"pending", "pending",
"invited" "invited",
"rejected"
] ]
}, },
"createdAt": { "createdAt": {
@@ -98589,7 +98741,8 @@
"owner", "owner",
"follow", "follow",
"pending", "pending",
"invited" "invited",
"rejected"
] ]
}, },
"createdAt": { "createdAt": {
@@ -103142,7 +103295,8 @@
"owner", "owner",
"follow", "follow",
"pending", "pending",
"invited" "invited",
"rejected"
] ]
}, },
"createdAt": { "createdAt": {
@@ -107024,7 +107178,8 @@
"owner", "owner",
"follow", "follow",
"pending", "pending",
"invited" "invited",
"rejected"
] ]
}, },
"createdAt": { "createdAt": {
@@ -110866,7 +111021,8 @@
"owner", "owner",
"follow", "follow",
"pending", "pending",
"invited" "invited",
"rejected"
] ]
}, },
"createdAt": { "createdAt": {

View File

@@ -26,6 +26,9 @@ export interface GroupActivity extends Struct.ComponentSchema {
displayName: 'Activity'; displayName: 'Activity';
}; };
attributes: { attributes: {
activityAvatar: Schema.Attribute.Media<
'images' | 'files' | 'videos' | 'audios'
>;
activityDate: Schema.Attribute.DateTime; activityDate: Schema.Attribute.DateTime;
activityMessage: Schema.Attribute.String; activityMessage: Schema.Attribute.String;
activityUser: Schema.Attribute.String; activityUser: Schema.Attribute.String;

View File

@@ -1047,7 +1047,7 @@ export interface ApiGroupMembershipGroupMembership
Schema.Attribute.Private; Schema.Attribute.Private;
publishedAt: Schema.Attribute.DateTime; publishedAt: Schema.Attribute.DateTime;
role: Schema.Attribute.Enumeration< role: Schema.Attribute.Enumeration<
['member', 'admin', 'owner', 'follow', 'pending', 'invited'] ['member', 'admin', 'owner', 'follow', 'pending', 'invited', 'rejected']
>; >;
updatedAt: Schema.Attribute.DateTime; updatedAt: Schema.Attribute.DateTime;
updatedBy: Schema.Attribute.Relation<'oneToOne', 'admin::user'> & updatedBy: Schema.Attribute.Relation<'oneToOne', 'admin::user'> &