Skip to content

Commit

Permalink
Restoring girder/girder_large_image/rest/__init__.py
Browse files Browse the repository at this point in the history
  • Loading branch information
gabrielle6249 committed Jul 10, 2024
1 parent e5f35e5 commit 955f5bd
Showing 1 changed file with 0 additions and 52 deletions.
52 changes: 0 additions & 52 deletions girder/girder_large_image/rest/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,6 @@
from girder.constants import AccessType, TokenScope
from girder.models.folder import Folder
from girder.models.item import Item
from girder.models.file import File
from girder_large_image.models.image_item import ImageItem


def addSystemEndpoints(apiRoot):
Expand All @@ -19,7 +17,6 @@ def addSystemEndpoints(apiRoot):
"""
apiRoot.folder.route('GET', (':id', 'yaml_config', ':name'), getYAMLConfigFile)
apiRoot.folder.route('PUT', (':id', 'yaml_config', ':name'), putYAMLConfigFile)
apiRoot.folder.route('PUT', (':id', 'items'), createLargeImages)

origItemFind = apiRoot.item._find
origFolderFind = apiRoot.folder._find
Expand Down Expand Up @@ -104,55 +101,6 @@ def _itemFindRecursive(self, origItemFind, folderId, text, name, limit, offset,
return Item().findWithPermissions(filters, offset, limit, sort=sort, user=user)
return origItemFind(folderId, text, name, limit, offset, sort, filters)

@access.user(scope=TokenScope.DATA_WRITE)
@autoDescribeRoute(
Description('Create large images for all items within a folder.')
.notes('Does not work for items with multiple files.')
.responseClass('Folder')
.modelParam('id', model=Folder, level=AccessType.WRITE, required=True)
.param('createJobs','Whether a job should be created for each large image.', required=False,
default=False, dataType='boolean')
.param('localJobs', 'Whether a the jobs created should be local.', required=False,
default=False, dataType='boolean')
.param('recurse', 'Whether child folders should be recursed', required=False, default=False,
dataType='boolean')
.errorResponse('ID was invalid.')
.errorResponse('Write access was denied for the folder.', 403)
)
@boundHandler
def createLargeImages(self, folder, params):
user=self.getCurrentUser()
createJobs = params.get('createJobs')
if createJobs:
createJobs = 'always' or True
createImagesRecurseOption(self, folder=folder, createJobs=createJobs, user=user,
recurse=params.get('recurse'), localJobs=params.get('localJobs'))

def createImagesRecurseOption(self, folder, createJobs, user, recurse, localJobs):
if recurse:
for childFolder in Folder().childFolders(parent=folder, parentType='folder'):
createImagesRecurseOption(self, folder=childFolder, createJobs=createJobs, user=user,
recurse=recurse, localJobs=localJobs)
for item in Folder().childItems(folder=folder):
if item.get('largeImage'):
if item['largeImage'].get('expected'):
pass
else:
try:
Item().getMetadata(item)
continue
except Exception:
previousFileId = item['largeImage'].get('originalId', item['largeImage']['fileId'])
ImageItem().delete(item)
ImageItem().createImageItem(item, File().load(user=user, id=previousFileId),
createJob=createJobs, localJob=localJobs)
else:
largeImageFileId = None
files = list(Item().childFiles(item=item, limit=0))
if len(files) == 1:
largeImageFileId = str(files[0]['_id'])
ImageItem().createImageItem(item, File().load(user=user, id=largeImageFileId),
createJob=createJobs, localJob=localJobs)

@access.public(scope=TokenScope.DATA_READ)
@autoDescribeRoute(
Expand Down

0 comments on commit 955f5bd

Please sign in to comment.