Skip to content

Commit ba89e64

Browse files
committed
add function to get all subgroups of a parent group
1 parent 29b8cbe commit ba89e64

File tree

1 file changed

+20
-0
lines changed

1 file changed

+20
-0
lines changed

dspace_rest_client/client.py

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1646,6 +1646,26 @@ def update_group_name(self, uuid, new_name):
16461646
response_json = parse_json(response=response)
16471647
return Group(response_json) if response_json else None
16481648

1649+
def get_subgroups(self, parent_uuid, page=0, size=20):
1650+
"""
1651+
Get all subgroups of a parent group
1652+
@param parent_uuid: UUID of the parent group
1653+
@param page: Page number for pagination
1654+
@param size: Number of results per page
1655+
@return: List of Group objects
1656+
"""
1657+
url = f"{self.API_ENDPOINT}/eperson/groups/{parent_uuid}/subgroups"
1658+
params = parse_params(page=page, size=size)
1659+
response = self.api_get(url, params=params)
1660+
response_json = parse_json(response=response)
1661+
subgroups = []
1662+
1663+
if "_embedded" in response_json and "groups" in response_json["_embedded"]:
1664+
for group_data in response_json["_embedded"]["groups"]:
1665+
subgroups.append(Group(group_data))
1666+
1667+
return subgroups
1668+
16491669
def start_workflow(self, workspace_item):
16501670
url = f"{self.API_ENDPOINT}/workflow/workflowitems"
16511671
res = parse_json(self.api_post_uri(url, params=None, uri_list=workspace_item))

0 commit comments

Comments
 (0)