import sys import os import json # Absolute path setup to avoid import errors current_dir = os.path.dirname(os.path.abspath(__file__)) connector_dir = os.path.abspath(os.path.join(current_dir, '..')) sys.path.insert(0, connector_dir) from superoffice_client import SuperOfficeClient def discover_associates_and_groups(): print("šŸ”Ž Discovering Associates and Groups...") client = SuperOfficeClient() if not client.access_token: print("āŒ Auth failed.") return # 1. Fetch User Groups print("\nšŸ‘„ Fetching User Groups...") groups = client._get("MDOList/usergroup") robo_group_id = None if groups: for group in groups: name = group.get('Name') grp_id = group.get('Id') print(f" - Group: {name} (ID: {grp_id})") if "Roboplanet" in name: robo_group_id = grp_id if robo_group_id: print(f"āœ… Identified Roboplanet Group ID: {robo_group_id}") else: print("āš ļø Could not auto-identify Roboplanet group. Check the list above.") # 2. Check Candidate IDs directly print("\nšŸ‘¤ Checking specific Person IDs for Willi Fottner...") candidates = [6, 182552] for pid in candidates: try: p = client.get_person(pid) if p: fname = p.get('Firstname') lname = p.get('Lastname') is_assoc = p.get('IsAssociate') print(f" šŸ‘‰ Person {pid}: {fname} {lname} (IsAssociate: {is_assoc})") if is_assoc: assoc_obj = p.get("Associate") if assoc_obj: assoc_id = assoc_obj.get("AssociateId") grp = assoc_obj.get("GroupIdx") print(f" āœ… IS ASSOCIATE! ID: {assoc_id}, Group: {grp}") if "Fottner" in str(lname) or "Willi" in str(fname): print(f" šŸŽÆ TARGET IDENTIFIED: Willi Fottner is Associate ID {assoc_id}") except Exception as e: print(f" āŒ Error checking Person {pid}: {e}") print("\n--- Done ---") if __name__ == "__main__": discover_associates_and_groups()