spatial-d4science/ckanext/spatial/controllers/view.py

39 lines
1.1 KiB
Python
Raw Normal View History

import urllib2
2016-09-19 13:32:55 +02:00
from ckan.lib.base import BaseController, c, request, \
response, render, abort
from ckan.model import Package
2016-09-19 13:32:55 +02:00
class ViewController(BaseController):
2016-09-19 13:32:55 +02:00
def wms_preview(self, id):
# check if package exists
c.pkg = Package.get(id)
if c.pkg is None:
abort(404, 'Dataset not found')
for res in c.pkg.resources:
2012-08-13 18:07:59 +02:00
if res.format.lower() == 'wms':
2016-09-19 13:32:55 +02:00
c.wms_url = res.url \
if '?' not in res.url else res.url.split('?')[0]
break
if not c.wms_url:
abort(400, 'This dataset does not have a WMS resource')
return render('ckanext/spatial/wms_preview.html')
def proxy(self):
2016-09-19 13:32:55 +02:00
if 'url' not in request.params:
abort(400)
try:
server_response = urllib2.urlopen(request.params['url'])
headers = server_response.info()
if headers.get('Content-Type'):
response.content_type = headers.get('Content-Type')
return server_response.read()
except urllib2.HTTPError as e:
response.status_int = e.getcode()
return