Skip to content

Commit 70ef48a

Browse files
author
Cary Cheng
authored
Add ability to retrieve avatar for user (#403)
1 parent 5f678c3 commit 70ef48a

File tree

3 files changed

+38
-0
lines changed

3 files changed

+38
-0
lines changed

boxsdk/object/user.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -177,6 +177,20 @@ def get_group_memberships(self, limit=None, offset=None, fields=None):
177177
return_full_pages=False,
178178
)
179179

180+
@api_call
181+
def get_avatar(self):
182+
"""
183+
Get the avatar for the User.
184+
185+
:returns:
186+
Avatar content as bytes.
187+
:rtype:
188+
`bytes`
189+
"""
190+
url = self.get_url('avatar')
191+
response = self._session.get(url, expect_json_response=False)
192+
return response.content
193+
180194
@api_call
181195
def delete(self, notify=True, force=False):
182196
# pylint: disable=arguments-differ

docs/usage/user.md

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ Users represent an individual's account on Box.
1010
- [Get User Information](#get-user-information)
1111
- [Get the Current User's Information](#get-the-current-users-information)
1212
- [Create An Enterprise User](#create-an-enterprise-user)
13+
- [Get the Avatar for a User](#get-the-avatar-for-a-user)
1314
- [Create An App User](#create-an-app-user)
1415
- [Update User](#update-user)
1516
- [Delete User](#delete-user)
@@ -70,6 +71,18 @@ new_user = client.create_user('Dummy User', '[email protected]')
7071

7172
[create_user]: https://box-python-sdk.readthedocs.io/en/latest/boxsdk.client.html#boxsdk.client.client.Client.create_user
7273

74+
Get the Avatar for a User
75+
-------------------------
76+
77+
To get the avatar for a user call the [`user.get_avatar()`][get_avatar] method with the [`User`][user_class]
78+
object for the user you wish to retrieve an avatar for. This will return the user avatar to you in bytes.
79+
80+
```python
81+
avatar = client.user('33333').get_avatar()
82+
```
83+
84+
[get_avatar]: https://box-python-sdk.readthedocs.io/en/latest/boxsdk.user.html#boxsdk.user.User.get_avatar
85+
7386
Create An App User
7487
------------------
7588

test/unit/object/test_user.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -200,3 +200,14 @@ def test_get_group_memberships(
200200
# pylint:disable=protected-access
201201
assert membership._session == mock_box_session
202202
mock_box_session.get.assert_called_once_with(expected_url, params={'offset': None})
203+
204+
205+
def test_get_user_avatar(mock_user, mock_box_session, mock_content_response):
206+
expected_url = mock_user.get_url('avatar')
207+
mock_box_session.get.return_value = mock_content_response
208+
avatar_content = mock_user.get_avatar()
209+
assert avatar_content == mock_content_response.content
210+
mock_box_session.get.assert_called_once_with(
211+
expected_url,
212+
expect_json_response=False,
213+
)

0 commit comments

Comments
 (0)