Use Falcon middleware for common headers
This commit is contained in:
parent
65dd8fad24
commit
bc731e686c
1 changed files with 8 additions and 11 deletions
13
backend.py
13
backend.py
|
|
@ -17,7 +17,9 @@ def db_connect():
|
||||||
user=os.getenv("DB_USER", None))
|
user=os.getenv("DB_USER", None))
|
||||||
|
|
||||||
|
|
||||||
def standard_headers(resp):
|
class HeaderMiddleware:
|
||||||
|
|
||||||
|
def process_response(self, req, resp, resource):
|
||||||
resp.set_header('X-Powered-By', 'OpenEventDatabase')
|
resp.set_header('X-Powered-By', 'OpenEventDatabase')
|
||||||
resp.set_header('Access-Control-Allow-Origin', '*')
|
resp.set_header('Access-Control-Allow-Origin', '*')
|
||||||
resp.set_header('Access-Control-Allow-Headers', 'X-Requested-With')
|
resp.set_header('Access-Control-Allow-Headers', 'X-Requested-With')
|
||||||
|
|
@ -32,7 +34,6 @@ class StatsResource(object):
|
||||||
cur.close()
|
cur.close()
|
||||||
db.close()
|
db.close()
|
||||||
|
|
||||||
standard_headers(resp)
|
|
||||||
resp.body = json.dumps(dict(stat))
|
resp.body = json.dumps(dict(stat))
|
||||||
resp.status = falcon.HTTP_200
|
resp.status = falcon.HTTP_200
|
||||||
|
|
||||||
|
|
@ -46,7 +47,6 @@ class EventsResource(object):
|
||||||
SELECT format('{"type":"Feature", "id": "'|| events_id::text ||'", "properties": '|| events_tags::text ||', "geometry":'|| st_asgeojson(geom)) ||' }'
|
SELECT format('{"type":"Feature", "id": "'|| events_id::text ||'", "properties": '|| events_tags::text ||', "geometry":'|| st_asgeojson(geom)) ||' }'
|
||||||
FROM events
|
FROM events
|
||||||
JOIN geo ON (hash=events_geo)""");
|
JOIN geo ON (hash=events_geo)""");
|
||||||
standard_headers(resp)
|
|
||||||
resp.body = """{"type": "FeatureCollection","features": [
|
resp.body = """{"type": "FeatureCollection","features": [
|
||||||
"""+""",
|
"""+""",
|
||||||
""".join([x[0] for x in cur.fetchall()])+"""
|
""".join([x[0] for x in cur.fetchall()])+"""
|
||||||
|
|
@ -66,7 +66,6 @@ class EventResource(object):
|
||||||
return h
|
return h
|
||||||
|
|
||||||
def on_get(self, req, resp, id=None):
|
def on_get(self, req, resp, id=None):
|
||||||
standard_headers(resp)
|
|
||||||
db = db_connect()
|
db = db_connect()
|
||||||
cur = db.cursor()
|
cur = db.cursor()
|
||||||
if id is None:
|
if id is None:
|
||||||
|
|
@ -152,7 +151,6 @@ WHERE events_id=%s;""", (id,))
|
||||||
db.close()
|
db.close()
|
||||||
|
|
||||||
def insert_or_update(self, req, resp, id, query):
|
def insert_or_update(self, req, resp, id, query):
|
||||||
standard_headers(resp)
|
|
||||||
|
|
||||||
# get request body payload (geojson Feature)
|
# get request body payload (geojson Feature)
|
||||||
body = req.stream.read().decode('utf-8')
|
body = req.stream.read().decode('utf-8')
|
||||||
|
|
@ -198,7 +196,6 @@ WHERE events_id=%s;""", (id,))
|
||||||
self.insert_or_update(req, resp, id, """UPDATE events SET ( events_type, events_what, events_when, events_tags, events_geo) = (%s, %s, tstzrange(%s,%s,%s) , %s, %s) WHERE events_id = %s RETURNING events_id;""")
|
self.insert_or_update(req, resp, id, """UPDATE events SET ( events_type, events_what, events_when, events_tags, events_geo) = (%s, %s, tstzrange(%s,%s,%s) , %s, %s) WHERE events_id = %s RETURNING events_id;""")
|
||||||
|
|
||||||
def on_delete(self, req, resp, id):
|
def on_delete(self, req, resp, id):
|
||||||
standard_headers(resp)
|
|
||||||
db = db_connect()
|
db = db_connect()
|
||||||
cur = db.cursor()
|
cur = db.cursor()
|
||||||
cur.execute("""DELETE FROM events WHERE events_id = %s;""", (id,));
|
cur.execute("""DELETE FROM events WHERE events_id = %s;""", (id,));
|
||||||
|
|
@ -210,8 +207,8 @@ WHERE events_id=%s;""", (id,))
|
||||||
else:
|
else:
|
||||||
resp.status = falcon.HTTP_404
|
resp.status = falcon.HTTP_404
|
||||||
|
|
||||||
# falcon.API instances are callable WSGI apps
|
# Falcon.API instances are callable WSGI apps.
|
||||||
app = falcon.API()
|
app = falcon.API(middleware=[HeaderMiddleware()])
|
||||||
|
|
||||||
# Resources are represented by long-lived class instances
|
# Resources are represented by long-lived class instances
|
||||||
events = EventsResource()
|
events = EventsResource()
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue