serJD commited on
Commit
5e26511
·
verified ·
1 Parent(s): e2cfceb

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +16 -16
app.py CHANGED
@@ -74,27 +74,27 @@ def fetch_referenced_object(speckleToken, apiUrl, stream_id, object_id):
74
  return send_graphql_query(speckleToken, apiUrl, query)
75
 
76
  def extract_team_name(object_data):
77
- # Try to get the team name directly
78
  data_field = object_data['data']['stream']['object']['data']
 
 
79
  try:
80
- nested_data_str = data_field['data']
81
- nested_data = json.loads(nested_data_str)
82
- team_name = nested_data.get('teamName')
83
- if team_name:
84
- return team_name
 
85
  except (KeyError, json.JSONDecodeError):
86
  pass
87
 
88
- # If not found, check for referencedId and fetch further data
89
- if '@Data' in data_field:
90
- referenced_id = data_field['@Data'].get('referencedId')
91
- if referenced_id:
92
- referenced_object_data = fetch_referenced_object(speckle_token, api_url, stream_id, referenced_id)
93
- print ("__________", referenced_object_data)
94
- if referenced_object_data:
95
- nested_data_str = referenced_object_data['data']['stream']['object']['data']['data']
96
- nested_data = json.loads(nested_data_str)
97
- return nested_data.get('teamName')
98
 
99
  return None
100
 
 
74
  return send_graphql_query(speckleToken, apiUrl, query)
75
 
76
  def extract_team_name(object_data):
 
77
  data_field = object_data['data']['stream']['object']['data']
78
+
79
+ # Check for the first structure with direct 'data'
80
  try:
81
+ nested_data_str = data_field.get('data')
82
+ if nested_data_str:
83
+ nested_data = json.loads(nested_data_str)
84
+ team_name = nested_data.get('teamName')
85
+ if team_name:
86
+ return team_name
87
  except (KeyError, json.JSONDecodeError):
88
  pass
89
 
90
+ # Check for the second structure under 'Data' -> '@{0}'
91
+ try:
92
+ data_object = data_field.get('Data', {})
93
+ team_name_list = data_object.get('@{0}')
94
+ if team_name_list and isinstance(team_name_list, list):
95
+ return team_name_list[0]
96
+ except (KeyError, json.JSONDecodeError) as e:
97
+ print(f"Error extracting team name: {e}")
 
 
98
 
99
  return None
100