def search(params={}, batching=True, context=None, config=None): """Search for listings.""" if config is None: config = {} settings = get_settings(context=context) search_params = {"sort_on": "last_activated_date", "reverse": "1"} listing_types = set(config.get("listing_type", ())) if listing_types: # Available Listing Types are restricted. search_listing_types = params.get("listing_type", None) if search_listing_types: search_listing_types = set(search_listing_types.split(",")) listing_types = listing_types.intersection(search_listing_types) params["listing_type"] = ",".join(listing_types) agency_listings = params.pop("agency_listings", False) if agency_listings is True: search_params["agency_id"] = settings.get("agency_id", None) search_params.update(params) base_url = settings.get("mls_site", None) api_key = settings.get("mls_key", None) batch = None results = [] resource = ListingResource(base_url, api_key=api_key) try: results, batch = resource.search(search_params) except MLSError, e: logger.warn(e)
def search(params={}, batching=True, context=None, config=None): """Search for listings.""" if config is None: config = {} settings = get_settings(context=context) search_params = { 'sort_on': 'last_activated_date', 'reverse': '1', } if config.get('show_unverified', False): search_params['apiowner'] = settings.get('agency_id') listing_types = set(config.get('listing_type', ())) if listing_types: # Available Listing Types are restricted. search_listing_types = params.get('listing_type', None) if search_listing_types: search_listing_types = set(search_listing_types.split(',')) listing_types = listing_types.intersection(search_listing_types) params['listing_type'] = ','.join(listing_types) agency_listings = params.pop('agency_listings', False) agency_priority = params.get('agency_priority', False) if agency_listings is True or agency_priority is True: agency_id = params.pop('overriding_agency_id', None) if not agency_id: agency_id = settings.get('agency_id', None) agency_id = agency_id.replace(' ', '') search_params['agency_id'] = agency_id search_params.update(params) base_url = settings.get('mls_site', None) api_key = settings.get('mls_key', None) batch = None results = [] debug = api.env.debug_mode resource = ListingResource(base_url, api_key=api_key, debug=debug) try: results, batch = resource.search(search_params) except MLSError as e: logger.warn(e) if batching: return results, batch return results