@@ -117,20 +117,23 @@ async def create_org(body: CreateOrgBody, current_user: Annotated[dict, Depends(
117117async def get_org (current_user : Annotated [dict , Depends (get_current_user )]):
118118 """Get current user's organization details."""
119119 uid = _uid (current_user )
120- user_data = _get_user_org (uid )
121- org_id = _require_org (user_data )
122-
123- supabase = get_supabase ()
124- org = supabase .table ("organizations" ).select ("*" ).eq ("id" , org_id ).single ().execute ()
125- members = supabase .table ("org_members" ).select (
126- "id, role, status, invited_email, invite_token, created_at, user_profiles(id, name, email)"
127- ).eq ("org_id" , org_id ).execute ()
128-
129- return {
130- "org" : org .data ,
131- "members" : members .data or [],
132- "your_role" : user_data .get ("org_role" , "member" ),
133- }
120+ try :
121+ user_data = _get_user_org (uid )
122+ org_id = _require_org (user_data )
123+ supabase = get_supabase ()
124+ org = supabase .table ("organizations" ).select ("*" ).eq ("id" , org_id ).single ().execute ()
125+ members = supabase .table ("org_members" ).select (
126+ "id, role, status, invited_email, invite_token, created_at, user_profiles(id, name, email)"
127+ ).eq ("org_id" , org_id ).execute ()
128+ return {
129+ "org" : org .data ,
130+ "members" : members .data or [],
131+ "your_role" : user_data .get ("org_role" , "member" ),
132+ }
133+ except HTTPException :
134+ raise
135+ except Exception :
136+ return {"org" : None , "members" : [], "your_role" : "owner" }
134137
135138
136139@router .post ("/org/invite" )
@@ -207,11 +210,14 @@ async def remove_member(member_user_id: str, current_user: Annotated[dict, Depen
207210@router .get ("/assignments/{email_id}" )
208211async def get_assignment (email_id : str , current_user : Annotated [dict , Depends (get_current_user )]):
209212 """Get assignment for a specific email."""
210- supabase = get_supabase ()
211- result = supabase .table ("email_assignments" ).select (
212- "*, user_profiles!assigned_to(id, name, email)"
213- ).eq ("email_id" , email_id ).execute ()
214- return result .data [0 ] if result .data else None
213+ try :
214+ supabase = get_supabase ()
215+ result = supabase .table ("email_assignments" ).select (
216+ "*, user_profiles!assigned_to(id, name, email)"
217+ ).eq ("email_id" , email_id ).execute ()
218+ return result .data [0 ] if result .data else None
219+ except Exception :
220+ return None
215221
216222
217223@router .post ("/assignments/{email_id}" )
@@ -251,16 +257,20 @@ def _verify_email_in_org(email_id: str, org_id: str) -> None:
251257@router .get ("/notes/{email_id}" )
252258async def get_notes (email_id : str , current_user : Annotated [dict , Depends (get_current_user )]):
253259 """Get all internal notes for an email."""
254- uid = _uid (current_user )
255- user_data = _get_user_org (uid )
256- org_id = _require_org (user_data )
257- _verify_email_in_org (email_id , org_id )
258-
259- supabase = get_supabase ()
260- notes = supabase .table ("internal_notes" ).select (
261- "*, user_profiles!user_id(id, name, email)"
262- ).eq ("email_id" , email_id ).order ("created_at" , desc = False ).execute ()
263- return notes .data or []
260+ try :
261+ uid = _uid (current_user )
262+ user_data = _get_user_org (uid )
263+ org_id = _require_org (user_data )
264+ _verify_email_in_org (email_id , org_id )
265+ supabase = get_supabase ()
266+ notes = supabase .table ("internal_notes" ).select (
267+ "*, user_profiles!user_id(id, name, email)"
268+ ).eq ("email_id" , email_id ).order ("created_at" , desc = False ).execute ()
269+ return notes .data or []
270+ except HTTPException :
271+ raise
272+ except Exception :
273+ return []
264274
265275
266276@router .post ("/notes/{email_id}" , status_code = status .HTTP_201_CREATED )
0 commit comments