def index(self, datastore_id=None): """ GET /datastores/{datastore_id}/datasources: Get all datasources within a given datastore.""" datastore = self._get_datastore_by_id(datastore_id) if datastore is None: abort(404) discovery_result = discover_datasources(datastore.ogrstring) for datasource in discovery_result: datasource['href'] = h.url_for(controller="datasources", action="show", datastore_id=datastore_id, datasource_id=datasource['id']) # prevent JSON Array Cross-site Exploits (XSRF/CSRF) return {'datasources': discovery_result}
def show(self, id): """GET /datastores/id: Show a specific item.""" # url('DataStores', id=ID) datastore = meta.Session.query(DataStore).get(id) # do not raise RuntimeError from discover_datasources # if in "test" mode try: datasources = discover_datasources(datastore.ogrstring) except RuntimeError: if "test" in request.params: datasources = None else: raise result = datastore.to_json() result['datasources'] = datasources return result