Skip to content

Instantly share code, notes, and snippets.

@zachmullen
Created September 8, 2014 01:10
Show Gist options
  • Save zachmullen/2e1c6de203490911a2ba to your computer and use it in GitHub Desktop.
Save zachmullen/2e1c6de203490911a2ba to your computer and use it in GitHub Desktop.
girder_folder_update_rest
@loadmodel(map={'id': 'folder'}, model='folder', level=AccessType.WRITE)
def updateFolder(self, folder, params):
user = self.getCurrentUser()
folder['name'] = params.get('name', folder['name']).strip()
folder['description'] = params.get(
'description', folder['description']).strip()
folder = self.model('folder').updateFolder(folder)
if 'parentType' in params and 'parentId' in params:
parentType = params['parentType'].lower()
if parentType not in ('user', 'collection', 'folder'):
raise RestException('Invalid parentType.')
parent = self.model(parentType).load(
params['parentId'], level=AccessType.WRITE, user=user, exc=True)
folder = self.model('folder').move(folder, parent, parentType)
return self.model('folder').filter(folder, user)
updateFolder.description = (
Description('Update a folder or move it into a new parent.')
.responseClass('Folder')
.param('id', 'The ID of the folder.', paramType='path')
.param('name', 'Name of the folder.', required=False)
.param('description', 'Description for the folder.', required=False)
.param('parentType', 'Parent type for the new parent of this folder.',
required=False)
.param('parentId', 'Parent ID for the new parent of this folder.',
required=False)
.errorResponse('ID was invalid.')
.errorResponse('Write access was denied for the folder or its new '
'parent object.', 403))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment