Skip to content

Commit 9f406ad

Browse files
authored
Merge pull request #284 from ynput/enhancement/list-items-in-graphql
List entity: Fetch items in GraphQl
2 parents 5c93a71 + 4bf7368 commit 9f406ad

File tree

2 files changed

+21
-1
lines changed

2 files changed

+21
-1
lines changed

ayon_api/constants.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -252,4 +252,8 @@
252252
"tags",
253253
"updatedAt",
254254
"updatedBy",
255+
"items.id",
256+
"items.entityId",
257+
"items.entityType",
258+
"items.position",
255259
}

ayon_api/graphql_queries.py

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -680,9 +680,25 @@ def entity_lists_graphql_query(fields):
680680
entity_lists_field = project_field.add_field_with_edges("entityLists")
681681
entity_lists_field.set_filter("ids", entity_list_ids)
682682

683-
nested_fields = fields_to_dict(set(fields))
683+
fields = set(fields)
684+
items_field_names = set()
685+
for field_name in set(fields):
686+
field_name.removeprefix("items")
687+
if not field_name.startswith("items"):
688+
continue
689+
690+
fields.discard(field_name)
691+
field_name = field_name.removeprefix("items").lstrip(".")
692+
if field_name:
693+
items_field_names.add(field_name)
684694

685695
query_queue = collections.deque()
696+
if items_field_names:
697+
items_field = entity_lists_field.add_field_with_edges("items")
698+
for field_name in items_field_names:
699+
items_field.add_edge_field(field_name)
700+
701+
nested_fields = fields_to_dict(set(fields))
686702
for key, value in nested_fields.items():
687703
query_queue.append((key, value, entity_lists_field))
688704

0 commit comments

Comments
 (0)