Skip to content

Commit 8d55f34

Browse files
committed
feat: Add new gamification event for sharing invitation link - MEED-10228 - Meeds-io/MIPs#244
Add new gamification event for sharing invitation link
1 parent 512b905 commit 8d55f34

File tree

6 files changed

+40
-17
lines changed

6 files changed

+40
-17
lines changed

portlets/src/main/webapp/WEB-INF/conf/gamification/storage/rule/rules-storage-configuration.xml

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -479,6 +479,27 @@ Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
479479
</object-param>
480480
</init-params>
481481
</component-plugin>
482+
<component-plugin>
483+
<name>UserJoinedSpaceByInvitationLink</name>
484+
<set-method>addPlugin</set-method>
485+
<type>io.meeds.gamification.plugin.EventConfigPlugin</type>
486+
<init-params>
487+
<object-param>
488+
<name>event</name>
489+
<object type="io.meeds.gamification.model.EventDTO">
490+
<field name="title">
491+
<string>userJoinedSpaceByInvitationLink</string>
492+
</field>
493+
<field name="type">
494+
<string>meeds</string>
495+
</field>
496+
<field name="trigger">
497+
<string>userJoinedSpaceByInvitationLink</string>
498+
</field>
499+
</object>
500+
</object-param>
501+
</init-params>
502+
</component-plugin>
482503
<component-plugin>
483504
<name>GrantUserAsLead</name>
484505
<set-method>addPlugin</set-method>

portlets/src/main/webapp/vue-app/rules-extensions/extensions.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,8 @@ extensionRegistry.registerExtension('engagementCenterActions', 'user-actions', {
8989
'updateSpaceDescription',
9090
'becomeSpaceManager',
9191
'inviteUserToSpace',
92-
'joinSpace'
92+
'joinSpace',
93+
'userJoinedSpaceByInvitationLink'
9394
].includes(actionLabel),
9495
getLink: realization => {
9596
if (realization.objectType === 'identity') {

services/src/main/java/io/meeds/gamification/constant/GamificationConstant.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,8 +82,11 @@ public interface GamificationConstant { // NOSONAR
8282
String GAMIFICATION_SOCIAL_SPACE_GRANT_AS_LEAD = "becomeSpaceManager";
8383
/** GRANT USER AS LEAD WITHIN SPACE */
8484
String GAMIFICATION_SOCIAL_SPACE_INVITE_USER = "inviteUserToSpace";
85+
/** USER JOINED SPACE BY INVITATION LINK*/
86+
String GAMIFICATION_SOCIAL_SPACE_JOIN_BY_INVITATION_LINK = "userJoinedSpaceByInvitationLink";
8587

86-
/***************************************************************************************************************************************************/
88+
89+
/***************************************************************************************************************************************************/
8790
/*********************************************** CONSTANTS TO MANAGE RELATIONSHIP GAMIFICATION PROCESS *********************************************/
8891
/***************************************************************************************************************************************************/
8992
/** SEND RELATIONSHIP REQUEST */

services/src/main/java/io/meeds/gamification/listener/GamificationSpaceListener.java

Lines changed: 9 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -16,21 +16,7 @@
1616
*/
1717
package io.meeds.gamification.listener;
1818

19-
import static io.meeds.gamification.constant.GamificationConstant.BROADCAST_GAMIFICATION_EVENT_ERROR;
20-
import static io.meeds.gamification.constant.GamificationConstant.EVENT_NAME;
21-
import static io.meeds.gamification.constant.GamificationConstant.GAMIFICATION_SOCIAL_SPACE_ADD;
22-
import static io.meeds.gamification.constant.GamificationConstant.GAMIFICATION_SOCIAL_SPACE_GRANT_AS_LEAD;
23-
import static io.meeds.gamification.constant.GamificationConstant.GAMIFICATION_SOCIAL_SPACE_INVITE_USER;
24-
import static io.meeds.gamification.constant.GamificationConstant.GAMIFICATION_SOCIAL_SPACE_JOIN;
25-
import static io.meeds.gamification.constant.GamificationConstant.GAMIFICATION_SOCIAL_SPACE_UPDATE_AVATAR;
26-
import static io.meeds.gamification.constant.GamificationConstant.GAMIFICATION_SOCIAL_SPACE_UPDATE_BANNER;
27-
import static io.meeds.gamification.constant.GamificationConstant.GAMIFICATION_SOCIAL_SPACE_UPDATE_DESCRIPTION;
28-
import static io.meeds.gamification.constant.GamificationConstant.IDENTITY_OBJECT_TYPE;
29-
import static io.meeds.gamification.constant.GamificationConstant.OBJECT_ID_PARAM;
30-
import static io.meeds.gamification.constant.GamificationConstant.OBJECT_TYPE_PARAM;
31-
import static io.meeds.gamification.constant.GamificationConstant.RECEIVER_ID;
32-
import static io.meeds.gamification.constant.GamificationConstant.SENDER_ID;
33-
import static io.meeds.gamification.constant.GamificationConstant.SPACE_MEMBERSHIP_OBJECT_TYPE;
19+
import static io.meeds.gamification.constant.GamificationConstant.*;
3420
import static io.meeds.gamification.listener.GamificationGenericListener.CANCEL_EVENT_NAME;
3521
import static io.meeds.gamification.listener.GamificationGenericListener.GENERIC_EVENT_NAME;
3622
import static io.meeds.gamification.utils.Utils.getCurrentUserIdentityId;
@@ -39,6 +25,7 @@
3925
import java.util.HashMap;
4026
import java.util.Map;
4127

28+
import io.meeds.social.space.plugin.SpaceInvitationLifeCycleEvent;
4229
import org.apache.commons.lang3.StringUtils;
4330

4431
import org.exoplatform.services.listener.ListenerService;
@@ -123,6 +110,13 @@ public void left(SpaceLifeCycleEvent event) {
123110
cancelRealization(username, space, GAMIFICATION_SOCIAL_SPACE_JOIN);
124111
}
125112

113+
@Override
114+
public void userJoinedByInvitationLink(SpaceInvitationLifeCycleEvent event) {
115+
String username = event.getInviterId();
116+
Space space = event.getSpace();
117+
createRealization(username, space, GAMIFICATION_SOCIAL_SPACE_JOIN_BY_INVITATION_LINK);
118+
}
119+
126120
@Override
127121
public void grantedLead(SpaceLifeCycleEvent event) {
128122
String username = event.getSource();

services/src/main/resources/locale/addon/Gamification_en.properties

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,8 @@ exoplatform.gamification.gamificationinformation.domain.Description.Attendance=A
115115
exoplatform.gamification.gamificationinformation.domain.Description=Description
116116
exoplatform.gamification.gamificationinformation.domain.Title=Campaign name
117117
gamification.event.title.becomeSpaceManager=Spaces: Become Space Admin
118+
gamification.event.title.userJoinedSpaceByInvitationLink=Spaces: Invite people to join using a link
119+
gamification.event.description.userJoinedSpaceByInvitationLink=Spaces: Invite people to join using a link
118120
exoplatform.gamification.gamificationinformation.domain.warning.add.domains=No campaigns created yet
119121
exoplatform.gamification.gamificationinformation.domain.errors.title=Campaign name is required
120122
exoplatform.gamification.gamificationinformation.domain.errors.description=Description is required

services/src/main/resources/locale/addon/Gamification_fr.properties

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,8 @@ exoplatform.gamification.gamificationinformation.domain.Description.Attendance=P
115115
exoplatform.gamification.gamificationinformation.domain.Description=Description
116116
exoplatform.gamification.gamificationinformation.domain.Title=Nom de la campagne
117117
gamification.event.title.becomeSpaceManager=Espaces : Devenir animateur d'un espace
118+
gamification.event.title.userJoinedSpaceByInvitationLink=Espaces : Invitez des personnes \u00e0 rejoindre via un lien
119+
gamification.event.description.userJoinedSpaceByInvitationLink=Espaces : Invitez des personnes \u00e0 rejoindre via un lien
118120
exoplatform.gamification.gamificationinformation.domain.warning.add.domains=Aucune campagne créée
119121
exoplatform.gamification.gamificationinformation.domain.errors.title=Le nom de la campagne est obligatoire
120122
exoplatform.gamification.gamificationinformation.domain.errors.description=Une description est obligatoire

0 commit comments

Comments
 (0)