Skip to content

Commit 2437b88

Browse files
committed
Update query handling
1 parent ec62cfa commit 2437b88

File tree

3 files changed

+26
-16
lines changed

3 files changed

+26
-16
lines changed

src/superannotate/lib/core/entities/base.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -279,12 +279,13 @@ def add_path(self, project_name: str, folder_name: str):
279279
return self
280280

281281
@staticmethod
282-
def map_fields(entity: dict) -> dict:
282+
def map_fields(entity: dict, drop_path: bool = True) -> dict:
283283
if "metadata" in entity:
284284
entity["url"] = entity["metadata"]["path"]
285285
else:
286286
entity["url"] = entity["path"]
287-
entity["path"] = None
287+
if drop_path:
288+
entity["path"] = None
288289
return entity
289290

290291

src/superannotate/lib/core/usecases/items.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,9 +37,11 @@
3737

3838

3939
def serialize_item_entity(
40-
entity: BaseItemEntity, project: ProjectEntity
40+
entity: BaseItemEntity, project: ProjectEntity, drop_path: bool = True
4141
) -> BaseItemEntity:
42-
entity = BaseItemEntity(**BaseItemEntity.map_fields(entity.dict()))
42+
entity = BaseItemEntity(
43+
**BaseItemEntity.map_fields(entity.dict(), drop_path=drop_path)
44+
)
4345
if project.upload_state != constants.UploadState.EXTERNAL.value:
4446
entity.url = None
4547
if project.type in constants.ProjectType.images:

src/superannotate/lib/infrastructure/controller.py

Lines changed: 19 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -447,30 +447,35 @@ def _build_query(
447447
return query
448448

449449
@staticmethod
450-
def _process_response(
450+
def process_response(
451451
service_provider,
452452
items: List[BaseItemEntity],
453453
project: ProjectEntity,
454454
folder: FolderEntity,
455+
replace_path: bool = True,
455456
) -> List[BaseItemEntity]:
456457
"""Process the response data and return a list of serialized items."""
457458
data = []
458459
for item in items:
459-
460-
item = usecases.serialize_item_entity(item, project)
461-
item = usecases.add_item_path(project, folder, item)
460+
if replace_path:
461+
item = usecases.serialize_item_entity(item, project)
462+
item = usecases.add_item_path(project, folder, item)
463+
else:
464+
item = usecases.serialize_item_entity(item, project, drop_path=False)
462465
item.annotation_status = service_provider.get_annotation_status_name(
463466
project, item.annotation_status
464467
)
465468
for assignment in item.assignments:
466-
role_name = service_provider.get_role_name(
467-
project, assignment["user_role"]
468-
)
469+
_role = "role" if "role" in assignment else "user_role"
470+
user_id = "email" if "email" in assignment else "user_id"
471+
role_name = service_provider.get_role_name(project, assignment[_role])
469472
if role_name == "QA":
470-
item.qa_email = assignment["user_id"]
473+
item.qa_email = assignment[user_id]
471474
elif role_name == "Annotator":
472-
item.annotator_email = assignment["user_id"]
475+
item.annotator_email = assignment[user_id]
473476
assignment["user_role"] = role_name
477+
assignment.pop("role", None)
478+
assignment.pop("email", None)
474479
data.append(item)
475480
return data
476481

@@ -487,7 +492,9 @@ def list_items(
487492
response = self.service_provider.item_service.list(project.id, folder.id, query)
488493
if response.error:
489494
raise AppException(response.error)
490-
return self._process_response(self.service_provider, project, folder)
495+
return self.process_response(
496+
self.service_provider, response.data, project, folder
497+
)
491498

492499
def attach(
493500
self,
@@ -1351,6 +1358,6 @@ def query_entities(
13511358
if response.errors:
13521359
raise AppException(response.errors)
13531360
items = response.data
1354-
return ItemManager._process_response(
1355-
self.service_provider, items, project, folder
1361+
return ItemManager.process_response(
1362+
self.service_provider, items, project, folder, replace_path=False
13561363
)

0 commit comments

Comments
 (0)