@@ -83,28 +83,34 @@ def apigee_remove_proxy_from_product(product: dict, proxy_to_remove):
8383 return product
8484
8585
86- def apigee_teams_map (teams : List [dict ]):
86+ def apigee_team_to_admin (team ):
87+ return next ((attr .get ('value' ) for attr in team ['attributes' ] if attr ['name' ] == 'ADMIN_EMAIL' ), None )
88+
89+
90+ def apigee_teams_map (team_members : List [dict ], teams : List [dict ]):
91+ from collections import defaultdict
92+ joined = defaultdict (dict )
93+ for item in team_members + teams :
94+ joined [item ['name' ]].update (item )
95+ full_teams = list (joined .values ())
8796
8897 return {
89- f" { team ['id' ] } @devteam.apigee.io" : {
90- "contact" : team [ 'pointOfContact' ] ,
91- "members" : list ( mem [ 'userId' ] for mem in team . get ( 'memberships' , []))
98+ team ['name' ] : {
99+ "contact" : apigee_team_to_admin ( team ) ,
100+ "members" : team [ 'members' ]
92101 }
93- for team in teams
102+ for team in full_teams
94103 }
95104
96105
97106def apigee_teams_to_point_of_contact (teams : List [dict ]):
98-
99- return {
100- f"{ team ['id' ]} @devteam.apigee.io" : team ['pointOfContact' ] for team in teams
101- }
107+ return {apigee_team_to_admin (team ) for team in teams }
102108
103109
104110def apigee_teams_to_members (teams : List [dict ]):
105111
106112 return {
107- f" { team ['id' ] } @devteam.apigee.io" : list ( mem [ 'userId' ] for mem in team .get ('memberships ' , []) ) for team in teams
113+ team ['owner' ]: team .get ('members ' , []) for team in teams
108114 }
109115
110116
@@ -126,18 +132,16 @@ def apigee_product_developers(
126132 result [product_name ] = []
127133
128134 for app in apps :
129- developer = dev_id_to_email [app ["developerId" ]]
130-
131- team = teams_map .get (developer , {})
132-
133135 entry = {
134- "app" : app ["appName" ],
135- "developer" : developer
136+ "app" : app ["appName" ]
136137 }
137138
138- if team :
139+ if app ['ownerEndpoint' ] == 'companies' :
140+ team = teams_map .get (app .get ("owner" ), {})
139141 entry ['developer' ] = team ['contact' ]
140142 entry ['team' ] = team ['members' ]
143+ else :
144+ entry ['developer' ] = dev_id_to_email [app ["owner" ]]
141145
142146 result [product_name ].append (entry )
143147
@@ -147,10 +151,6 @@ def apigee_product_developers(
147151
148152 return result
149153
150- # return {
151- # f"{team['id']}@devteam.apigee.io": list(mem['userId'] for mem in team.get('memberships', [])) for team in teams
152- # }
153-
154154
155155class FilterModule :
156156
0 commit comments