Skip to content

Commit 25fd603

Browse files
committed
better merge of rest and graphql project data
1 parent c94b0e7 commit 25fd603

1 file changed

Lines changed: 29 additions & 16 deletions

File tree

ayon_api/_api_helpers/projects.py

Lines changed: 29 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -291,16 +291,14 @@ def get_projects(
291291
return
292292
projects_by_name = {p["name"]: p for p in projects}
293293

294-
for project in self.get_rest_projects(active, library):
294+
for project in self.get_rest_projects(active=active, library=library):
295+
if own_attributes:
296+
fill_own_attribs(project)
297+
295298
name = project["name"]
296-
graphql_p = projects_by_name.get(name)
297-
if graphql_p:
298-
for key in (
299-
"productTypes",
300-
"usedTags",
301-
):
302-
if key in graphql_p:
303-
project[key] = graphql_p[key]
299+
graphql_project = projects_by_name.get(name)
300+
self._merge_project_graphql_data(project, graphql_project)
301+
304302
yield project
305303

306304
def get_project(
@@ -342,13 +340,9 @@ def get_project(
342340
project = self.get_rest_project(project_name)
343341
if own_attributes:
344342
fill_own_attribs(project)
345-
if graphql_project:
346-
for key in (
347-
"productTypes",
348-
"usedTags",
349-
):
350-
if key in graphql_project:
351-
project[key] = graphql_project[key]
343+
344+
self._merge_project_graphql_data(project, graphql_project)
345+
352346
return project
353347

354348
def create_project(
@@ -818,6 +812,25 @@ def _get_graphql_projects(
818812
self._fill_project_entity_data(project)
819813
yield project
820814

815+
def _merge_project_graphql_data(
816+
self,
817+
rest_project: dict[str, Any],
818+
graphql_project: Optional[dict[str, Any]],
819+
) -> None:
820+
if not graphql_project:
821+
return
822+
823+
for key, value in graphql_project.items():
824+
if (
825+
key not in rest_project
826+
or key in (
827+
"productBaseTypes",
828+
"productTypes",
829+
"usedTags",
830+
)
831+
):
832+
rest_project[key] = value
833+
821834
def _get_project_roots_values(
822835
self,
823836
project_name: str,

0 commit comments

Comments
 (0)