Skip to content

Commit

Permalink
Added 'Bulk Add Group Members' and implemented 'Delete a Group Member'
Browse files Browse the repository at this point in the history
  • Loading branch information
fbuchmeier-abi committed Oct 23, 2020
1 parent e8a6082 commit 61cf9dd
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 2 deletions.
16 changes: 14 additions & 2 deletions seafileapi/groups.py
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ class Group:
"""
GROUPS_URL = '/api/v2.1/groups/{}/'
GROUP_MEMBERS_URL = '/api/v2.1/groups/{}/members/{}'
GROUP_MEMBERS_BULK_URL = '/api/v2.1/groups/{}/members/{}/bulk'
GROUP_MESSAGES_URL = '/api2/groups/{}/discussions/{}'
__slots__ = ('client', 'id', 'name', 'owner', 'created_at', 'admins', 'avatar_url', 'wiki_enabled')

Expand Down Expand Up @@ -121,13 +122,24 @@ def add_member(self, email):
res = self.client.post(self.GROUP_MEMBERS_URL.format(self.id, ''), data={'email': email}).json()
return self.get_member(res['email'])

def add_members(self):
def add_members(self, emails):
"""
:param emails:
:return:
"""
res = self.client.post(self.GROUP_MEMBERS_BULK_URL.format(self.id, ''), data={'emails': ','.join(emails)}).json()
# TODO Return 'failed' members as well?
return [self.get_member(member['email']) for member in res['success']]

def delete_member(self, email):
"""
:param email:
:return:
"""
raise NotImplemented
res = self.client.delete(self.GROUP_MEMBERS_URL.format(self.id, email)).json()
return bool(res['success'])

def list_messages(self):
"""
Expand Down
5 changes: 5 additions & 0 deletions tests/test_groups.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,11 @@ def test_members(group, test_account1, test_account2):
member2.delete()
assert member2 not in group.list_members()

member1.delete()
member2.delete()
members = group.add_members([test_account1.email, test_account2.email])
assert member1 in group.list_members() and member2 in group.list_members()


def test_messages(group, test_account1, test_account2):
member1 = group.add_member(test_account1.email)
Expand Down

0 comments on commit 61cf9dd

Please sign in to comment.