Exemplo n.º 1
0
 def create_folder(self):
     """
     https://developers.box.com/docs/#folders-create-a-new-folder
     """
     params = json.load(request.body)
     name = params.get('name')
     if name is None:
         abort(400, 'Missing parameter: name')
     parent = params.get('parent')
     if parent is None or 'id' not in parent:
         abort(400, 'Missing parameter: parent(id)')
     parent_id = parent['id']
     try:
         parent_folder = self._db_session.query(FolderModel).filter_by(folder_id=parent_id).one()
     except NoResultFound:
         abort(404)
     owner = get_user_from_header(self._db_session)
     name_in_use = self._db_session.query(FolderModel).filter_by(name=name).count()
     if name_in_use:
         abort(409, 'An item with that name already exists.')
     folder = FolderModel(name=name, parent_id=parent_folder.id, owned_by=owner, created_by=owner)
     self._db_session.add(folder)
     self._db_session.commit()
     self._db_session.add(EventModel(event_type='ITEM_CREATE', source_id=folder.folder_id, source_type='folder'))
     self._db_session.commit()
     return json.dumps(folder)
Exemplo n.º 2
0
 def create_folder(self):
     """
     https://developers.box.com/docs/#folders-create-a-new-folder
     """
     params = json.load(request.body)
     name = params.get("name")
     if name is None:
         abort(400, "Missing parameter: name")
     parent = params.get("parent")
     if parent is None or "id" not in parent:
         abort(400, "Missing parameter: parent(id)")
     parent_id = parent["id"]
     try:
         parent_folder = self._db_session.query(FolderModel).filter_by(folder_id=parent_id).one()
     except NoResultFound:
         abort(404)
     owner = get_user_from_header(self._db_session)
     name_in_use = self._db_session.query(FolderModel).filter_by(name=name).count()
     if name_in_use:
         abort(409, "An item with that name already exists.")
     folder = FolderModel(name=name, parent_id=parent_folder.id, owned_by=owner, created_by=owner)
     self._db_session.add(folder)
     self._db_session.commit()
     self._db_session.add(EventModel(event_type="ITEM_CREATE", source_id=folder.folder_id, source_type="folder"))
     self._db_session.commit()
     return json.dumps(folder)
Exemplo n.º 3
0
 def upload_file(self):
     """
     https://developers.box.com/docs/#files-upload-a-file
     """
     attributes = request.forms.get('attributes') or request.forms.get(
         'metadata')
     if not attributes:
         abort(400, 'Missing parameter: attributes')
     attributes = json.loads(attributes)
     parent = attributes.get('parent')
     if parent is None or 'id' not in parent:
         abort(400, 'Missing parameter: parent(id)')
     parent_id = parent['id']
     folder = get_folder_by_id(self._db_session, parent_id)
     content = request.files.file.file.read()
     file_hash = sha1()
     file_hash.update(content)
     owner = get_user_from_header(self._db_session)
     file_object = FileModel(
         content=content,
         name=attributes.get('name', request.files.file.name),
         parent_id=folder.id,
         sha1=file_hash.hexdigest(),
         size=len(content),
         owned_by=owner,
         created_by=owner,
     )
     self._db_session.add(file_object)
     self._db_session.commit()
     self._db_session.add(
         EventModel(event_type='ITEM_UPLOAD',
                    source_id=file_object.file_id,
                    source_type='file'))
     self._db_session.commit()
     return json.dumps({'entries': [file_object]})
Exemplo n.º 4
0
 def upload_file(self):
     """
     https://developers.box.com/docs/#files-upload-a-file
     """
     attributes = request.forms.get('attributes') or request.forms.get('metadata')
     if not attributes:
         abort(400, 'Missing parameter: attributes')
     attributes = json.loads(attributes)
     parent = attributes.get('parent')
     if parent is None or 'id' not in parent:
         abort(400, 'Missing parameter: parent(id)')
     parent_id = parent['id']
     folder = get_folder_by_id(self._db_session, parent_id)
     content = request.files.file.file.read()
     file_hash = sha1()
     file_hash.update(content)
     owner = get_user_from_header(self._db_session)
     file_object = FileModel(
         content=content,
         name=attributes.get('name', request.files.file.name),
         parent_id=folder.id,
         sha1=file_hash.hexdigest(),
         size=len(content),
         owned_by=owner,
         created_by=owner,
     )
     self._db_session.add(file_object)
     self._db_session.commit()
     self._db_session.add(EventModel(event_type='ITEM_UPLOAD', source_id=file_object.file_id, source_type='file'))
     self._db_session.commit()
     return json.dumps({'entries': [file_object]})
Exemplo n.º 5
0
 def get_user_info(self, user_id):
     if user_id == 'me':
         user_id = get_user_from_header(self._db_session).user_id
     else:
         user_id = int(user_id)
     user = self._get_user_by_id(user_id)
     return {
         'type': 'user',
         'login': user.login,
         'enterprise': None,
         'id': user.user_id,
         'name': user.name,
     }
Exemplo n.º 6
0
 def get_user_info(self, user_id):
     if user_id == 'me':
         user_id = get_user_from_header(self._db_session).user_id
     else:
         user_id = int(user_id)
     user = self._get_user_by_id(user_id)
     return {
         'type': 'user',
         'login': user.login,
         'enterprise': None,
         'id': user.user_id,
         'name': user.name,
     }