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();