def trigger_gazettes_search( territory_id: str = None, since: date = None, until: date = None, keywords: List[str] = None, offset: int = 0, size: int = 10, fragment_size: int = 150, number_of_fragments: int = 1, pre_tags: List[str] = [""], post_tags: List[str] = [""], sort_by: SortBy = SortBy.DESCENDING_DATE, ): gazettes_count, gazettes = app.gazettes.get_gazettes( GazetteRequest( territory_id, since=since, until=until, keywords=keywords, offset=offset, size=size, fragment_size=fragment_size, number_of_fragments=number_of_fragments, pre_tags=pre_tags, post_tags=post_tags, sort_by=sort_by.value, )) response = { "total_gazettes": 0, "gazettes": [], } if gazettes_count > 0 and gazettes: response["gazettes"] = gazettes response["total_gazettes"] = gazettes_count return response
def test_should_foward_filter_to_gateway(self): gazette_access = GazetteAccess(self.mock_data_gateway) list( self.gazette_access.get_gazettes(filters=GazetteRequest( territory_id="4205902"))) self.mock_data_gateway.get_gazettes.assert_called_once_with( territory_id="4205902")
def test_GazetteRequest_should_territory_id_attribute(self): territory_id = "1234" since = date.today() until = date.today() - timedelta(days=1) keywords = ["cnpj", "bla", "foo", "bar"] offset = 10 size = 100 request = GazetteRequest(territory_id, since, until, keywords, offset, size) self.assertEqual( territory_id, request.territory_id, msg="Territory ID is invalid" ) self.assertEqual(since, request.since, msg="'Since' date is invalid") self.assertEqual(until, request.until, msg="'Until' date is invalid") self.assertEqual(keywords, request.keywords, msg="Keywords are invalid") self.assertEqual(offset, request.offset, msg="Offset are invalid") self.assertEqual(size, request.size, msg="Invalid number of items")
def test_GazetteRequest_should_territory_id_attribute(self): territory_id = "1234" since = date.today() until = date.today() - timedelta(days=1) querystring = "cnpj bla foo bar" offset = 10 size = 100 request = GazetteRequest(territory_id, since, until, querystring, offset, size) self.assertEqual(territory_id, request.territory_id, msg="Territory ID is invalid") self.assertEqual(since, request.since, msg="'Since' date is invalid") self.assertEqual(until, request.until, msg="'Until' date is invalid") self.assertEqual(querystring, request.querystring, msg="Querystring is invalid") self.assertEqual(offset, request.offset, msg="Offset are invalid") self.assertEqual(size, request.size, msg="Invalid number of items")
def test_should_foward_page_fields_filter_to_gateway(self): gazette_access = GazetteAccess(self.mock_data_gateway, self.mock_database_gateway) list( self.gazette_access.get_gazettes( filters=GazetteRequest(offset=10, size=100))[1]) self.mock_data_gateway.get_gazettes.assert_called_once_with( until=None, since=None, territory_id=None, querystring=None, offset=10, size=100, fragment_size=150, number_of_fragments=1, pre_tags=[""], post_tags=[""], sort_by="relevance", )
def test_should_foward_until_date_filter_to_gateway(self): gazette_access = GazetteAccess( self.mock_data_gateway, self.mock_database_gateway ) list( self.gazette_access.get_gazettes( filters=GazetteRequest(until=date.today()) )[1] ) self.mock_data_gateway.get_gazettes.assert_called_once_with( until=date.today(), since=None, territory_id=None, keywords=None, offset=0, size=10, fragment_size=150, number_of_fragments=1, pre_tags=[""], post_tags=[""], sort_by="descending_date", )
def test_gazette_request_creation(self): gazette_request = GazetteRequest("ID") self.assertIsInstance(gazette_request.territory_id, str) self.assertEqual("ID", gazette_request.territory_id)
async def get_gazettes(territory_id: str): gazettes = app.gazettes.get_gazettes(GazetteRequest(territory_id)) if gazettes: return [GazetteItem(**gazette) for gazette in gazettes] return []
async def get_gazettes( territory_ids: List[str] = Query( [], description= "Search in gazettes published by cities with the given 7-digit IBGE IDs (an empty field searches in all available cities).", ), since: date = Query( None, description= "Search in gazettes published on given date or after (format: YYYY-MM-DD).", ), until: date = Query( None, description= "Search in gazettes published on given date or before (format: YYYY-MM-DD).", ), querystring: str = Query( "", description= 'Search in gazettes using ElasticSearch\'s "simple query string syntax" (an empty field returns no excerpts, only the results metadata).', ), excerpt_size: int = Query( 500, description= "Maximum number of characters that an excerpt should display (use with caution).", ), number_of_excerpts: int = Query( 1, description= "Maximum number of excerpts of a gazette to be returned (use with caution).", ), pre_tags: List[str] = Query( [""], description= "List of strings (usually HTML tags) to be inserted before the text which matches the query in the excerpts.", ), post_tags: List[str] = Query( [""], description= "List of strings (usually HTML tags) to be inserted after the text which matches the query in the excerpts.", ), size: int = Query( 10, description= "Maximum number of results to be returned in the response (use with caution).", ), offset: int = Query( default=0, description="Number of search results to be skipped in the response.", ), sort_by: SortBy = Query( SortBy.RELEVANCE, description="How to sort the search results.", ), ): gazette_request = GazetteRequest( territory_ids=territory_ids, since=since, until=until, querystring=querystring, excerpt_size=excerpt_size, number_of_excerpts=number_of_excerpts, pre_tags=pre_tags, post_tags=post_tags, size=size, offset=offset, sort_by=sort_by.value, ) gazettes_count, gazettes = app.gazettes.get_gazettes(gazette_request) return { "total_gazettes": gazettes_count, "gazettes": gazettes, }