@@ -126,9 +126,12 @@ def get_group_summary(self, group_id, requester_user_id):
126126 group_id , requester_user_id
127127 )
128128 else :
129- res = yield self .transport_client .get_group_summary (
130- get_domain_from_id (group_id ), group_id , requester_user_id
131- )
129+ try :
130+ res = yield self .transport_client .get_group_summary (
131+ get_domain_from_id (group_id ), group_id , requester_user_id
132+ )
133+ except RequestSendFailed :
134+ raise SynapseError (502 , "Failed to contact group server" )
132135
133136 group_server_name = get_domain_from_id (group_id )
134137
@@ -183,9 +186,12 @@ def create_group(self, group_id, user_id, content):
183186
184187 content ["user_profile" ] = yield self .profile_handler .get_profile (user_id )
185188
186- res = yield self .transport_client .create_group (
187- get_domain_from_id (group_id ), group_id , user_id , content
188- )
189+ try :
190+ res = yield self .transport_client .create_group (
191+ get_domain_from_id (group_id ), group_id , user_id , content
192+ )
193+ except RequestSendFailed :
194+ raise SynapseError (502 , "Failed to contact group server" )
189195
190196 remote_attestation = res ["attestation" ]
191197 yield self .attestations .verify_attestation (
@@ -221,9 +227,12 @@ def get_users_in_group(self, group_id, requester_user_id):
221227
222228 group_server_name = get_domain_from_id (group_id )
223229
224- res = yield self .transport_client .get_users_in_group (
225- get_domain_from_id (group_id ), group_id , requester_user_id
226- )
230+ try :
231+ res = yield self .transport_client .get_users_in_group (
232+ get_domain_from_id (group_id ), group_id , requester_user_id
233+ )
234+ except RequestSendFailed :
235+ raise SynapseError (502 , "Failed to contact group server" )
227236
228237 chunk = res ["chunk" ]
229238 valid_entries = []
@@ -258,9 +267,12 @@ def join_group(self, group_id, user_id, content):
258267 local_attestation = self .attestations .create_attestation (group_id , user_id )
259268 content ["attestation" ] = local_attestation
260269
261- res = yield self .transport_client .join_group (
262- get_domain_from_id (group_id ), group_id , user_id , content
263- )
270+ try :
271+ res = yield self .transport_client .join_group (
272+ get_domain_from_id (group_id ), group_id , user_id , content
273+ )
274+ except RequestSendFailed :
275+ raise SynapseError (502 , "Failed to contact group server" )
264276
265277 remote_attestation = res ["attestation" ]
266278
@@ -299,9 +311,12 @@ def accept_invite(self, group_id, user_id, content):
299311 local_attestation = self .attestations .create_attestation (group_id , user_id )
300312 content ["attestation" ] = local_attestation
301313
302- res = yield self .transport_client .accept_group_invite (
303- get_domain_from_id (group_id ), group_id , user_id , content
304- )
314+ try :
315+ res = yield self .transport_client .accept_group_invite (
316+ get_domain_from_id (group_id ), group_id , user_id , content
317+ )
318+ except RequestSendFailed :
319+ raise SynapseError (502 , "Failed to contact group server" )
305320
306321 remote_attestation = res ["attestation" ]
307322
@@ -338,13 +353,16 @@ def invite(self, group_id, user_id, requester_user_id, config):
338353 group_id , user_id , requester_user_id , content
339354 )
340355 else :
341- res = yield self .transport_client .invite_to_group (
342- get_domain_from_id (group_id ),
343- group_id ,
344- user_id ,
345- requester_user_id ,
346- content ,
347- )
356+ try :
357+ res = yield self .transport_client .invite_to_group (
358+ get_domain_from_id (group_id ),
359+ group_id ,
360+ user_id ,
361+ requester_user_id ,
362+ content ,
363+ )
364+ except RequestSendFailed :
365+ raise SynapseError (502 , "Failed to contact group server" )
348366
349367 return res
350368
@@ -398,13 +416,16 @@ def remove_user_from_group(self, group_id, user_id, requester_user_id, content):
398416 )
399417 else :
400418 content ["requester_user_id" ] = requester_user_id
401- res = yield self .transport_client .remove_user_from_group (
402- get_domain_from_id (group_id ),
403- group_id ,
404- requester_user_id ,
405- user_id ,
406- content ,
407- )
419+ try :
420+ res = yield self .transport_client .remove_user_from_group (
421+ get_domain_from_id (group_id ),
422+ group_id ,
423+ requester_user_id ,
424+ user_id ,
425+ content ,
426+ )
427+ except RequestSendFailed :
428+ raise SynapseError (502 , "Failed to contact group server" )
408429
409430 return res
410431
@@ -435,9 +456,13 @@ def get_publicised_groups_for_user(self, user_id):
435456
436457 return {"groups" : result }
437458 else :
438- bulk_result = yield self .transport_client .bulk_get_publicised_groups (
439- get_domain_from_id (user_id ), [user_id ]
440- )
459+ try :
460+ bulk_result = yield self .transport_client .bulk_get_publicised_groups (
461+ get_domain_from_id (user_id ), [user_id ]
462+ )
463+ except RequestSendFailed :
464+ raise SynapseError (502 , "Failed to contact group server" )
465+
441466 result = bulk_result .get ("users" , {}).get (user_id )
442467 # TODO: Verify attestations
443468 return {"groups" : result }
0 commit comments