This is an automated email from the ASF dual-hosted git repository.

lahirujayathilake pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/airavata-custos.git


The following commit(s) were added to refs/heads/master by this push:
     new afea714c2 updated group membership response with the total_members and 
requester_role
afea714c2 is described below

commit afea714c298d52c316c42d5f31acd40075dee32a
Author: lahiruj <[email protected]>
AuthorDate: Fri Oct 18 09:01:25 2024 -0400

    updated group membership response with the total_members and requester_role
---
 .../main/java/org/apache/custos/core/mapper/user/GroupMapper.java  | 7 +++++++
 .../apache/custos/core/repo/user/GroupMembershipRepository.java    | 5 +++++
 core/src/main/proto/UserProfile.proto                              | 2 ++
 .../java/org/apache/custos/service/profile/UserProfileService.java | 7 ++++++-
 4 files changed, 20 insertions(+), 1 deletion(-)

diff --git 
a/core/src/main/java/org/apache/custos/core/mapper/user/GroupMapper.java 
b/core/src/main/java/org/apache/custos/core/mapper/user/GroupMapper.java
index ab45a643d..b00796de6 100644
--- a/core/src/main/java/org/apache/custos/core/mapper/user/GroupMapper.java
+++ b/core/src/main/java/org/apache/custos/core/mapper/user/GroupMapper.java
@@ -108,6 +108,13 @@ public class GroupMapper {
         return groupEntity;
     }
 
+    public static org.apache.custos.core.user.profile.api.Group 
createGroup(Group groupEntity, String ownerId, int totalMembers, String 
requesterRole) {
+        return createGroup(groupEntity, ownerId)
+                .toBuilder()
+                .setTotalMembers(totalMembers)
+                .setRequesterRole(requesterRole)
+                .build();
+    }
 
     public static org.apache.custos.core.user.profile.api.Group 
createGroup(Group group, String ownerId) {
 
diff --git 
a/core/src/main/java/org/apache/custos/core/repo/user/GroupMembershipRepository.java
 
b/core/src/main/java/org/apache/custos/core/repo/user/GroupMembershipRepository.java
index 847c61f2e..d165ca202 100644
--- 
a/core/src/main/java/org/apache/custos/core/repo/user/GroupMembershipRepository.java
+++ 
b/core/src/main/java/org/apache/custos/core/repo/user/GroupMembershipRepository.java
@@ -23,6 +23,7 @@ import org.apache.custos.core.model.user.UserGroupMembership;
 import org.springframework.data.jpa.repository.JpaRepository;
 
 import java.util.List;
+import java.util.Optional;
 
 public interface GroupMembershipRepository extends 
JpaRepository<UserGroupMembership, String> {
 
@@ -35,4 +36,8 @@ public interface GroupMembershipRepository extends 
JpaRepository<UserGroupMember
     List<UserGroupMembership> 
findAllByGroupIdAndUserProfileIdAndUserGroupMembershipTypeId(String groupId, 
String userProfileId, String groupMembershipId);
 
     List<UserGroupMembership> 
findAllByGroupIdAndUserGroupMembershipTypeId(String id, String 
groupMembershipId);
+
+    Optional<UserGroupMembership> findFirstByGroupIdAndUserProfileId(String 
groupId, String userProfileId);
+
+    int countByGroupId(String id);
 }
diff --git a/core/src/main/proto/UserProfile.proto 
b/core/src/main/proto/UserProfile.proto
index 6719a660a..5cb4429fb 100644
--- a/core/src/main/proto/UserProfile.proto
+++ b/core/src/main/proto/UserProfile.proto
@@ -136,6 +136,8 @@ message Group {
   repeated GroupAttribute attributes = 8;
   string description = 9;
   string owner_id = 10;
+  int32 total_members = 11;
+  string requester_role = 12;
 }
 
 message GroupAttribute {
diff --git 
a/services/src/main/java/org/apache/custos/service/profile/UserProfileService.java
 
b/services/src/main/java/org/apache/custos/service/profile/UserProfileService.java
index e05b71257..83ff2b51a 100644
--- 
a/services/src/main/java/org/apache/custos/service/profile/UserProfileService.java
+++ 
b/services/src/main/java/org/apache/custos/service/profile/UserProfileService.java
@@ -851,7 +851,12 @@ public class UserProfileService {
                         break;
                     }
                 }
-                groupList.add(GroupMapper.createGroup(groupMap.get(gr), 
ownerId));
+                int totalMembers = 
groupMembershipRepository.countByGroupId(gr);
+                var requesterRole = 
groupMembershipRepository.findFirstByGroupIdAndUserProfileId(gr, userId)
+                        .orElseThrow()
+                        .getUserGroupMembershipType()
+                        .getId();
+                groupList.add(GroupMapper.createGroup(groupMap.get(gr), 
ownerId, totalMembers, requesterRole));
             });
 
             return 
GetAllGroupsResponse.newBuilder().addAllGroups(groupList).build();

Reply via email to