@@ -95,6 +95,24 @@ async def _aggregate_data_to_projects_from_other_sources(
9595 return updated_projects
9696
9797
98+ async def _convert_db_projects_to_api_projects (
99+ app : web .Application ,
100+ db ,
101+ db_projects : list ,
102+ ) -> list [dict ]:
103+ """
104+ Converts db schema projects to API schema (legacy postprocessing).
105+ """
106+ api_projects : list [dict ] = []
107+ for db_prj in db_projects :
108+ db_prj_dict = db_prj .model_dump ()
109+ db_prj_dict .pop ("product_name" , None )
110+ db_prj_dict ["tags" ] = await db .get_tags_by_project (project_id = f"{ db_prj .id } " )
111+ user_email = await get_user_email_legacy (app , db_prj .prj_owner )
112+ api_projects .append (convert_to_schema_names (db_prj_dict , user_email ))
113+ return api_projects
114+
115+
98116async def list_projects ( # pylint: disable=too-many-arguments
99117 app : web .Application ,
100118 user_id : UserID ,
@@ -172,14 +190,7 @@ async def list_projects( # pylint: disable=too-many-arguments
172190 order_by = order_by ,
173191 )
174192
175- # This is a legacy postprocessing step to convert db schema to API schema (to be backwards compatible)
176- api_projects : list [dict ] = []
177- for db_prj in db_projects :
178- db_prj_dict = db_prj .model_dump ()
179- db_prj_dict .pop ("product_name" , None )
180- db_prj_dict ["tags" ] = await db .get_tags_by_project (project_id = f"{ db_prj .id } " )
181- user_email = await get_user_email_legacy (app , db_prj .prj_owner )
182- api_projects .append (convert_to_schema_names (db_prj_dict , user_email ))
193+ api_projects = await _convert_db_projects_to_api_projects (app , db , db_projects )
183194
184195 final_projects = await _aggregate_data_to_projects_from_other_sources (
185196 app , db_projects = api_projects , user_id = user_id
@@ -219,14 +230,7 @@ async def list_projects_full_depth(
219230 order_by = order_by ,
220231 )
221232
222- # This is a legacy postprocessing step to convert db schema to API schema (to be backwards compatible)
223- api_projects : list [dict ] = []
224- for db_prj in db_projects :
225- db_prj_dict = db_prj .model_dump ()
226- db_prj_dict .pop ("product_name" , None )
227- db_prj_dict ["tags" ] = await db .get_tags_by_project (project_id = f"{ db_prj .id } " )
228- user_email = await get_user_email_legacy (app , db_prj .prj_owner )
229- api_projects .append (convert_to_schema_names (db_prj_dict , user_email ))
233+ api_projects = await _convert_db_projects_to_api_projects (app , db , db_projects )
230234
231235 final_projects = await _aggregate_data_to_projects_from_other_sources (
232236 app , db_projects = api_projects , user_id = user_id
0 commit comments