def build_query(self, kwargs, join=True): query = super(ScheduleAView, self).build_query(kwargs) query = filters.filter_contributor_type(query, self.model.entity_type, kwargs) if join: query = query.options(sa.orm.joinedload(models.ScheduleA.committee)) query = query.options(sa.orm.joinedload(models.ScheduleA.contributor)) return query
def test_filter_contributor_type_none(self): query = filters.filter_contributor_type( models.ScheduleA.query, models.ScheduleA.entity_type, {'contributor_type': ['individual', 'committee']}, ) self.assertEqual(set(query.all()), set(self.receipts))
def build_query(self, **kwargs): query = super().build_query(**kwargs) query = filters.filter_contributor_type(query, self.model.entity_type, kwargs) zip_list = [] if kwargs.get('contributor_zip'): for value in kwargs['contributor_zip']: if re.search('[^a-zA-Z0-9-\s]', value): raise exceptions.ApiError( 'Invalid zip code. It can not have special character', status_code=400, ) else: zip_list.append(value[:5]) contributor_zip_list = {'contributor_zip': zip_list} query = filters.filter_multi_start_with( query, contributor_zip_list, self.filter_multi_start_with_fields) if kwargs.get('sub_id'): query = query.filter_by(sub_id=int(kwargs.get('sub_id'))) if kwargs.get('line_number'): if len(kwargs.get('line_number').split('-')) == 2: form, line_no = kwargs.get('line_number').split('-') query = query.filter_by(filing_form=form.upper()) query = query.filter_by(line_number=line_no) return query
def test_filter_contributor_type_committee(self): query = filters.filter_contributor_type( models.ScheduleA.query, models.ScheduleA.entity_type, {'contributor_type': ['committee']}, ) self.assertEqual( set(query.all()), set(each for each in self.receipts if each.entity_type != 'IND'))
def test_filter_contributor_type_committee(self): query = filters.filter_contributor_type( models.ScheduleA.query, models.ScheduleA.entity_type, {'contributor_type': ['committee']}, ) self.assertEqual( set(query.all()), set(each for each in self.receipts if each.entity_type != 'IND') )
def build_query(self, kwargs, join=True): query = super(ScheduleAView, self).build_query(kwargs) query = filters.filter_contributor_type(query, self.model.entity_type, kwargs) if join: query = query.options(sa.orm.joinedload( models.ScheduleA.committee)) query = query.options( sa.orm.joinedload(models.ScheduleA.contributor)) return query
def build_query(self, **kwargs): query = super().build_query(**kwargs) query = filters.filter_contributor_type(query, self.model.entity_type, kwargs) if kwargs.get('sub_id'): query = query.filter_by(sub_id= int(kwargs.get('sub_id'))) if kwargs.get('line_number'): if len(kwargs.get('line_number').split('-')) == 2: form, line_no = kwargs.get('line_number').split('-') query = query.filter_by(filing_form=form.upper()) query = query.filter_by(line_number=line_no) return query
def build_query(self, **kwargs): query = super().build_query(**kwargs) query = filters.filter_contributor_type(query, self.model.entity_type, kwargs) if kwargs.get('sub_id'): query = query.filter_by(sub_id=int(kwargs.get('sub_id'))) if kwargs.get('line_number'): if len(kwargs.get('line_number').split('-')) == 2: form, line_no = kwargs.get('line_number').split('-') query = query.filter_by(filing_form=form.upper()) query = query.filter_by(line_number=line_no) return query
def build_query(self, **kwargs): secondary_index_options = [ 'committee_id', 'contributor_id', 'contributor_name', 'contributor_city', 'contributor_zip', 'contributor_employer', 'contributor_occupation', 'image_number', ] two_year_transaction_periods = set( kwargs.get('two_year_transaction_period', []) ) if len(two_year_transaction_periods) != 1: if not any(kwargs.get(field) for field in secondary_index_options): raise exceptions.ApiError( "Please choose a single `two_year_transaction_period` or \ add one of the following filters to your query: `{}`".format( "`, `".join(secondary_index_options) ), status_code=400, ) query = super().build_query(**kwargs) query = filters.filter_contributor_type(query, self.model.entity_type, kwargs) zip_list = [] if kwargs.get('contributor_zip'): for value in kwargs['contributor_zip']: if re.search('[^a-zA-Z0-9-\s]', value): # noqa raise exceptions.ApiError( 'Invalid zip code. It can not have special character', status_code=400, ) else: zip_list.append(value[:5]) contributor_zip_list = {'contributor_zip': zip_list} query = filters.filter_multi_start_with( query, contributor_zip_list, self.filter_multi_start_with_fields ) if kwargs.get('sub_id'): query = query.filter_by(sub_id=int(kwargs.get('sub_id'))) if kwargs.get('line_number'): # line_number is a composite value of 'filing_form-line_number' if len(kwargs.get('line_number').split('-')) == 2: form, line_no = kwargs.get('line_number').split('-') query = query.filter_by(filing_form=form.upper()) query = query.filter_by(line_number=line_no) else: raise exceptions.ApiError( exceptions.LINE_NUMBER_ERROR, status_code=400, ) return query
def build_query(self, **kwargs): query = super().build_query(**kwargs) query = filters.filter_contributor_type(query, self.model.entity_type, kwargs) if kwargs.get('contributor_zip'): for value in kwargs['contributor_zip']: if re.search('^-?\d{5}$', value) is None: raise exceptions.ApiError( 'Invalid Zip code. It must be 5 digits', status_code=400, ) query = filters.filter_multi_start_with( query, kwargs, self.filter_multi_start_with_fields) if kwargs.get('sub_id'): query = query.filter_by(sub_id=int(kwargs.get('sub_id'))) if kwargs.get('line_number'): if len(kwargs.get('line_number').split('-')) == 2: form, line_no = kwargs.get('line_number').split('-') query = query.filter_by(filing_form=form.upper()) query = query.filter_by(line_number=line_no) return query
def build_query(self, **kwargs): query = super().build_query(**kwargs) query = filters.filter_contributor_type(query, self.model.entity_type, kwargs) return query
def build_query(self, **kwargs): query = super().build_query(**kwargs) query = filters.filter_contributor_type(query, self.model.entity_type, kwargs) if kwargs.get('sub_id'): query = query.filter_by(sub_id= int(kwargs.get('sub_id'))) return query