Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion boxsdk/auth/jwt_auth.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@
from cryptography.hazmat.primitives import serialization
import jwt

from boxsdk.util.compat import total_seconds
from .oauth2 import OAuth2
from ..util.compat import total_seconds


class JWTAuth(OAuth2):
Expand Down
50 changes: 33 additions & 17 deletions boxsdk/client/client.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,8 @@
from ..config import API
from ..session.box_session import BoxSession
from ..network.default_network import DefaultNetwork
from ..object.user import User
from ..object.folder import Folder
from ..object.search import Search
from ..object.events import Events
from ..object.file import File
from ..object.group import Group
from ..object.group_membership import GroupMembership
from ..util.shared_link import get_shared_link_header
from ..util.translator import Translator

Expand Down Expand Up @@ -67,7 +62,7 @@ def folder(self, folder_id):
:rtype:
:class:`Folder`
"""
return Folder(session=self._session, object_id=folder_id)
return Translator().translate('folder')(session=self._session, object_id=folder_id)

def file(self, file_id):
"""
Expand All @@ -82,7 +77,7 @@ def file(self, file_id):
:rtype:
:class:`File`
"""
return File(session=self._session, object_id=file_id)
return Translator().translate('file')(session=self._session, object_id=file_id)

def user(self, user_id='me'):
"""
Expand All @@ -97,7 +92,7 @@ def user(self, user_id='me'):
:rtype:
:class:`User`
"""
return User(session=self._session, object_id=user_id)
return Translator().translate('user')(session=self._session, object_id=user_id)

def group(self, group_id):
"""
Expand All @@ -112,7 +107,7 @@ def group(self, group_id):
:rtype:
:class:`Group`
"""
return Group(session=self._session, object_id=group_id)
return Translator().translate('group')(session=self._session, object_id=group_id)

def users(self, limit=None, offset=0, filter_term=None):
"""
Expand Down Expand Up @@ -143,7 +138,12 @@ def users(self, limit=None, offset=0, filter_term=None):
params['filter_term'] = filter_term
box_response = self._session.get(url, params=params)
response = box_response.json()
return [User(self._session, item['id'], item) for item in response['entries']]
user_class = Translator().translate('user')
return [user_class(
session=self._session,
object_id=item['id'],
response_object=item,
) for item in response['entries']]

def search(
self,
Expand Down Expand Up @@ -226,7 +226,10 @@ def group_membership(self, group_membership_id):
:rtype:
:class:`GroupMembership`
"""
return GroupMembership(session=self._session, object_id=group_membership_id)
return Translator().translate('group_membership')(
session=self._session,
object_id=group_membership_id,
)

def groups(self):
"""
Expand All @@ -240,7 +243,12 @@ def groups(self):
url = '{0}/groups'.format(API.BASE_API_URL)
box_response = self._session.get(url)
response = box_response.json()
return [Group(self._session, item['id'], item) for item in response['entries']]
group_class = Translator().translate('group')
return [group_class(
session=self._session,
object_id=item['id'],
response_object=item,
) for item in response['entries']]

def create_group(self, name):
"""
Expand All @@ -263,7 +271,11 @@ def create_group(self, name):
}
box_response = self._session.post(url, data=json.dumps(body_attributes))
response = box_response.json()
return Group(self._session, response['id'], response)
return Translator().translate('group')(
session=self._session,
object_id=response['id'],
response_object=response,
)

def get_shared_item(self, shared_link, password=None):
"""
Expand All @@ -290,9 +302,9 @@ def get_shared_item(self, shared_link, password=None):
headers=get_shared_link_header(shared_link, password),
).json()
return Translator().translate(response['type'])(
self._session.with_shared_link(shared_link, password),
response['id'],
response,
session=self._session.with_shared_link(shared_link, password),
object_id=response['id'],
response_object=response,
)

def make_request(self, method, url, **kwargs):
Expand Down Expand Up @@ -342,7 +354,11 @@ def create_user(self, name, login=None, **user_attributes):
user_attributes['is_platform_access_only'] = True
box_response = self._session.post(url, data=json.dumps(user_attributes))
response = box_response.json()
return User(self._session, response['id'], response)
return Translator().translate('user')(
session=self._session,
object_id=response['id'],
response_object=response,
)

def as_user(self, user):
"""
Expand Down
2 changes: 1 addition & 1 deletion boxsdk/object/base_api_json_object.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ class BaseAPIJSONObjectMeta(type):
"""
def __init__(cls, name, bases, attrs):
super(BaseAPIJSONObjectMeta, cls).__init__(name, bases, attrs)
item_type = attrs.get('_item_type', None)
item_type = getattr(cls, '_item_type', None)
if item_type is not None:
Translator().register(item_type, cls)

Expand Down