def retrieve_voter_guide_possibility(self, voter_guide_possibility_id=0, google_civic_election_id=0, voter_guide_possibility_url='', organization_we_vote_id=None, public_figure_we_vote_id=None, owner_we_vote_id=None): voter_guide_possibility_id = convert_to_int(voter_guide_possibility_id) google_civic_election_id = convert_to_int(google_civic_election_id) organization_we_vote_id = convert_to_str(organization_we_vote_id) public_figure_we_vote_id = convert_to_str(public_figure_we_vote_id) owner_we_vote_id = convert_to_str(owner_we_vote_id) error_result = False exception_does_not_exist = False exception_multiple_object_returned = False voter_guide_possibility_on_stage = VoterGuidePossibility() voter_guide_possibility_on_stage_id = 0 try: if positive_value_exists(voter_guide_possibility_id): status = "ERROR_RETRIEVING_VOTER_GUIDE_POSSIBILITY_WITH_ID" # Set this in case the get fails voter_guide_possibility_on_stage = VoterGuidePossibility.objects.get(id=voter_guide_possibility_id) voter_guide_possibility_on_stage_id = voter_guide_possibility_on_stage.id status = "VOTER_GUIDE_POSSIBILITY_FOUND_WITH_ID" success = True elif positive_value_exists(voter_guide_possibility_url): status = "ERROR_RETRIEVING_VOTER_GUIDE_POSSIBILITY_WITH_URL" # Set this in case the get fails voter_guide_possibility_on_stage = VoterGuidePossibility.objects.get( voter_guide_possibility_url=voter_guide_possibility_url) voter_guide_possibility_on_stage_id = voter_guide_possibility_on_stage.id status = "VOTER_GUIDE_POSSIBILITY_FOUND_WITH_URL" success = True elif positive_value_exists(organization_we_vote_id) and positive_value_exists(google_civic_election_id): # Set this status in case the 'get' fails status = "ERROR_RETRIEVING_VOTER_GUIDE_POSSIBILITY_WITH_ORGANIZATION_WE_VOTE_ID" voter_guide_possibility_on_stage = VoterGuidePossibility.objects.get( google_civic_election_id=google_civic_election_id, organization_we_vote_id=organization_we_vote_id) voter_guide_possibility_on_stage_id = voter_guide_possibility_on_stage.id status = "VOTER_GUIDE_POSSIBILITY_FOUND_WITH_ORGANIZATION_WE_VOTE_ID" success = True elif positive_value_exists(public_figure_we_vote_id) and positive_value_exists(google_civic_election_id): # Set this status in case the 'get' fails status = "ERROR_RETRIEVING_VOTER_GUIDE_POSSIBILITY_WITH_PUBLIC_FIGURE_WE_VOTE_ID" voter_guide_possibility_on_stage = VoterGuidePossibility.objects.get( google_civic_election_id=google_civic_election_id, public_figure_we_vote_id=public_figure_we_vote_id) voter_guide_possibility_on_stage_id = voter_guide_possibility_on_stage.id status = "VOTER_GUIDE_POSSIBILITY_FOUND_WITH_PUBLIC_FIGURE_WE_VOTE_ID" success = True elif positive_value_exists(owner_we_vote_id) and positive_value_exists(google_civic_election_id): # Set this status in case the 'get' fails status = "ERROR_RETRIEVING_VOTER_GUIDE_POSSIBILITY_WITH_VOTER_WE_VOTE_ID" voter_guide_possibility_on_stage = VoterGuidePossibility.objects.get( google_civic_election_id=google_civic_election_id, owner_we_vote_id=owner_we_vote_id) voter_guide_possibility_on_stage_id = voter_guide_possibility_on_stage.id status = "VOTER_GUIDE_POSSIBILITY_FOUND_WITH_VOTER_WE_VOTE_ID" success = True else: status = "VOTER_GUIDE_POSSIBILITY_NOT_FOUND_INSUFFICIENT_VARIABLES" success = False except VoterGuidePossibility.MultipleObjectsReturned as e: handle_record_found_more_than_one_exception(e, logger) error_result = True exception_multiple_object_returned = True status += ", ERROR_MORE_THAN_ONE_VOTER_GUIDE_POSSIBILITY_FOUND" success = False except VoterGuidePossibility.DoesNotExist: error_result = True exception_does_not_exist = True status = "VOTER_GUIDE_POSSIBILITY_NOT_FOUND" success = True voter_guide_possibility_on_stage_found = True if voter_guide_possibility_on_stage_id > 0 else False results = { 'success': success, 'status': status, 'voter_guide_possibility_found': voter_guide_possibility_on_stage_found, 'voter_guide_possibility_id': voter_guide_possibility_on_stage_id, 'voter_guide_possibility_url': voter_guide_possibility_on_stage.voter_guide_possibility_url, 'organization_we_vote_id': voter_guide_possibility_on_stage.organization_we_vote_id, 'public_figure_we_vote_id': voter_guide_possibility_on_stage.public_figure_we_vote_id, 'owner_we_vote_id': voter_guide_possibility_on_stage.owner_we_vote_id, 'voter_guide': voter_guide_possibility_on_stage, 'error_result': error_result, 'DoesNotExist': exception_does_not_exist, 'MultipleObjectsReturned': exception_multiple_object_returned, } return results
def retrieve_voter_guide(self, voter_guide_id=0, google_civic_election_id=0, vote_smart_time_span=None, organization_we_vote_id=None, public_figure_we_vote_id=None, owner_we_vote_id=None): voter_guide_id = convert_to_int(voter_guide_id) google_civic_election_id = convert_to_int(google_civic_election_id) organization_we_vote_id = convert_to_str(organization_we_vote_id) public_figure_we_vote_id = convert_to_str(public_figure_we_vote_id) owner_we_vote_id = convert_to_str(owner_we_vote_id) error_result = False exception_does_not_exist = False exception_multiple_object_returned = False voter_guide_on_stage = VoterGuide() voter_guide_on_stage_id = 0 status = "ERROR_ENTERING_RETRIEVE_VOTER_GUIDE" try: if positive_value_exists(voter_guide_id): status = "ERROR_RETRIEVING_VOTER_GUIDE_WITH_ID" # Set this in case the get fails voter_guide_on_stage = VoterGuide.objects.get(id=voter_guide_id) voter_guide_on_stage_id = voter_guide_on_stage.id status = "VOTER_GUIDE_FOUND_WITH_ID" elif positive_value_exists(organization_we_vote_id) and positive_value_exists(google_civic_election_id): status = "ERROR_RETRIEVING_VOTER_GUIDE_WITH_ORGANIZATION_WE_VOTE_ID" # Set this in case the get fails voter_guide_on_stage = VoterGuide.objects.get(google_civic_election_id=google_civic_election_id, organization_we_vote_id=organization_we_vote_id) voter_guide_on_stage_id = voter_guide_on_stage.id status = "VOTER_GUIDE_FOUND_WITH_ORGANIZATION_WE_VOTE_ID" elif positive_value_exists(organization_we_vote_id) and positive_value_exists(vote_smart_time_span): status = "ERROR_RETRIEVING_VOTER_GUIDE_WITH_ORGANIZATION_WE_VOTE_ID_AND_TIME_SPAN" voter_guide_on_stage = VoterGuide.objects.get(vote_smart_time_span=vote_smart_time_span, organization_we_vote_id=organization_we_vote_id) voter_guide_on_stage_id = voter_guide_on_stage.id status = "VOTER_GUIDE_FOUND_WITH_ORGANIZATION_WE_VOTE_ID_AND_TIME_SPAN" elif positive_value_exists(public_figure_we_vote_id) and positive_value_exists(google_civic_election_id): status = "ERROR_RETRIEVING_VOTER_GUIDE_WITH_PUBLIC_FIGURE_WE_VOTE_ID" # Set this in case the get fails voter_guide_on_stage = VoterGuide.objects.get(google_civic_election_id=google_civic_election_id, public_figure_we_vote_id=public_figure_we_vote_id) voter_guide_on_stage_id = voter_guide_on_stage.id status = "VOTER_GUIDE_FOUND_WITH_PUBLIC_FIGURE_WE_VOTE_ID" elif positive_value_exists(owner_we_vote_id) and positive_value_exists(google_civic_election_id): status = "ERROR_RETRIEVING_VOTER_GUIDE_WITH_VOTER_WE_VOTE_ID" # Set this in case the get fails voter_guide_on_stage = VoterGuide.objects.get(google_civic_election_id=google_civic_election_id, owner_we_vote_id=owner_we_vote_id) voter_guide_on_stage_id = voter_guide_on_stage.id status = "VOTER_GUIDE_FOUND_WITH_VOTER_WE_VOTE_ID" else: status = "Insufficient variables included to retrieve one voter guide." except VoterGuide.MultipleObjectsReturned as e: handle_record_found_more_than_one_exception(e, logger) error_result = True exception_multiple_object_returned = True status += ", ERROR_MORE_THAN_ONE_VOTER_GUIDE_FOUND" except VoterGuide.DoesNotExist: error_result = True exception_does_not_exist = True status += ", VOTER_GUIDE_NOT_FOUND" voter_guide_on_stage_found = True if voter_guide_on_stage_id > 0 else False results = { 'success': True if voter_guide_on_stage_found else False, 'status': status, 'voter_guide_found': voter_guide_on_stage_found, 'voter_guide_id': voter_guide_on_stage_id, 'organization_we_vote_id': voter_guide_on_stage.organization_we_vote_id, 'public_figure_we_vote_id': voter_guide_on_stage.public_figure_we_vote_id, 'owner_we_vote_id': voter_guide_on_stage.owner_we_vote_id, 'voter_guide': voter_guide_on_stage, 'error_result': error_result, 'DoesNotExist': exception_does_not_exist, 'MultipleObjectsReturned': exception_multiple_object_returned, } return results