def delete(self, id): user = UserModel.find_by_username(get_jwt_identity()) try: link = CommunityUserLinkModel.find_by_user_and_community( user.id, id) if not link or not link.is_owner: abort(401, message=UNAUTHORIZED) except NoData: abort(404, message=COMMUNIY_DOESNT_EXIST) all_links = CommunityUserLinkModel.find_by_community(id) for link in all_links: link.delete() try: CommunityModel.delete_by_id(id) except NoData: abort(404, message=COMMUNIY_DOESNT_EXIST) return SimpleMessage(COMMUNIY_DELETED), 200
def delete(self, community_id): user = UserModel.find_by_username(get_jwt_identity()) invitation = CommunityUserLinkModel.find_by_user_and_community( user.id, community_id) if not invitation: abort(404, message=COMMUNITY_INVITATION_DOESNT_EXIST) if invitation.user_id != user.id: abort(401, message=NOT_AUTHORIZED_TO_REMOVE_USER_FROM_COMMUNITY) if invitation.invitation_accepted and not invitation.is_owner: invitation.delete() return SimpleMessage(COMMUNIY_LEFT_SUCCESSFULLY), 200 if invitation.invitation_accepted and invitation.is_owner: CommunityModel.delete_by_id(invitation.community.id) return SimpleMessage(COMMUNIY_LEFT_AND_DELETED) invitation.delete() return SimpleMessage(COMMUNITY_INVITATION_DECLINED), 200