def proxy(request, backend_name, url): """Retrieve url from a specific external backend""" backend = utils.load_backend(backend_name) rv = backend.get_url(url, request) if '"exception": "location could not be found. OpLocation matching query does not exist."' in rv.content: from external_resource.backends.openpolis import OpenPolisLocationsBackend from django.http import HttpResponse import json locations = OpenPolisLocationsBackend(backend.settings_dict) loc_url = backend.base_url + 'locations/' loc = locations.get_data(loc_url+url) first_city, data = None, {} if loc['location_type']['name'] == 'Regione': first_city = backend.get_data('%s?location_type=comune®ional_id=%s&limit=1'% (loc_url,loc['regional_id']))[0] data = backend.get_data(backend.base_url+'cityreps/op_id/%s' % first_city['id'] ) data['city_representatives']['provincia'] = {'giunta':[],'consiglio':[]} elif loc['location_type']['name'] == 'Provincia': first_city = backend.get_data('%s?location_type=comune&provincial_id=%s&limit=1'% (loc_url,loc['provincial_id']))[0] data = backend.get_data(backend.base_url+'cityreps/op_id/%s' % first_city['id'] ) data['city_representatives']['regione'] = {'giunta':[],'consiglio':[]} data['city_representatives']['comune'] = {'giunta':[],'consiglio':[]} data['city_representatives']['camera'] = {'representatives':[]} data['city_representatives']['senato'] = {'representatives':[]} data['city_representatives']['europarl'] = {'representatives':[]} data['city_representatives']['location'] = '' rv = HttpResponse(json.dumps(data), mimetype='application/json') return rv
def cityreps_proxy(request, url): """Retrieve url from cityreps backend""" backend_name = "cityreps" backend = utils.load_backend(backend_name) rv = backend.get_url(url, request) # NOTE: default implementation of get_url already has # mimetype as "application/json" return rv
def get_query(self, q, request): # I will use this logic in the get_objects too: # I will get a list of structures containing the Json data, # that will be used into the Action view backend_name = self.get_backend_name() backend = utils.load_backend(backend_name) full_url = backend.base_url + "locations/?namestartswith=%s" % q data = backend.get_data(full_url) fake_qs = [] for d in data: backend_name = "cityreps" backend = utils.load_backend(backend_name) rel_url = 'cityreps/op_id/' + str(d["id"]) + '/' city_reps_url = urlparse.urljoin(backend.base_url, rel_url) city_reps_data = backend.get_data(city_reps_url) d.update(city_reps_data) fake_qs.append(GeonameDict(d["id"], **d)) return fake_qs
def get_query(self,q,request): # I will use this logic in the get_objects too: # I will get a list of structures containing the Json data, # that will be used into the Action view backend_name = self.get_backend_name() backend = utils.load_backend(backend_name) full_url = backend.base_url + "locations/?namestartswith=%s" % q data = backend.get_data(full_url) fake_qs = [] for d in data: backend_name = "cityreps" backend = utils.load_backend(backend_name) rel_url = 'cityreps/op_id/' + str(d["id"]) + '/' city_reps_url = urlparse.urljoin(backend.base_url, rel_url) city_reps_data = backend.get_data(city_reps_url) d.update(city_reps_data) fake_qs.append(GeonameDict(d["id"], **d)) return fake_qs
def get_objects(self, ids): """ Return a list of structures containing Json data """ backend_name = self.get_backend_name() backend = utils.load_backend(backend_name) json_data = [] for _id in ids: data = backend.get_info(_id) j_data = GeonameDict(data["id"], **data) json_data.append(j_data) return json_data
def get_objects(self, ids): """ Return a list of structures containing Json data """ #was: backend_name = "locations" backend_name = self.get_backend_name() backend = utils.load_backend(backend_name) json_data = [] for _id in ids: j_data = backend.get_info(_id) json_data.append(j_data) return json_data
def get_objects(self, ids): """ Return a list of structures containing Json data """ # was: backend_name = "locations" backend_name = self.get_backend_name() backend = utils.load_backend(backend_name) json_data = [] for _id in ids: j_data = backend.get_info(_id) json_data.append(j_data) return json_data
def get_backend(self): return utils.load_backend(self.backend_name)
def proxy(request, backend_name, url): """Retrieve url from a specific external backend""" backend = utils.load_backend(backend_name) rv = backend.get_url(url, request) return rv