def expire(self): # get reference to group by id try: group_ref = db.reference("/groups/" + self.group_id) group_dict = group_ref.get() members_list = group_dict["members"].keys() # Prepare message message_title = "Group has expired!" message_body = "The group " + group_dict[ 'groupname'] + " has expired." message = Message(self.group_id, message_title, message_body) # Create resource manager rm = ResourceManager(self.group_id) # Set the current group of everyone who was in this group to null for member in members_list: user_group_ref = db.reference("/users/" + member + "/current_group") user_group_ref.delete() #Clean all resources group_ref.delete() rm.delete_blobs() # Notify all users in group message.send() except Exception as ex: print(ex) return
def delete_group(): #get headers data = request.headers id_token = data['Authorization'] try: decoded_token = auth.verify_id_token(id_token) except Exception as ex: return make_response('user not found', 401) # get user information uid = decoded_token["uid"] group_id = data["group_id"] user = decoded_token["name"] try: # get reference to group by id group_ref = db.reference("/groups/" + group_id) group_dict = group_ref.get() members_list = group_dict["members"].keys() #uid belongs to owner -> Delete group if uid == group_dict['owner']['id']: #Prepare message message_title = "Group deleted!" message_body = "The group " + group_dict[ 'groupname'] + " has been deleted by the owner" message = Message(group_id, message_title, message_body) #Create resource manager rm = ResourceManager(group_id) #Set the current group of everyone who was in this group to null for member in members_list: user_group_ref = db.reference("/users/" + member + "/current_group") user_group_ref.delete() #Clean all resources group_ref.delete() rm.delete_blobs() # Notify all users in group message.send() return make_response('group deleted', 200) #uid belongs to member -> Leave group elif uid in group_dict['members']: #Set the current group of user to null group_ref.child('members/' + uid).delete() user_group_ref = db.reference("/users/" + uid + "/current_group") user_group_ref.delete() # Notify all users in group message_title = "A member left your group!" message_body = user + " has left your group " + group_dict[ 'groupname'] message = Message(group_id, message_title, message_body) message.send() return make_response('left group', 200) else: return make_response('not authorized', 401) except Exception as ex: return make_response('Leaving group unsuccessful', 500)