pep 8
This commit is contained in:
parent
c05b744fee
commit
3cde7042a1
1 changed files with 31 additions and 26 deletions
17
backend.py
17
backend.py
|
@ -4,9 +4,8 @@
|
||||||
import os
|
import os
|
||||||
import falcon
|
import falcon
|
||||||
import psycopg2
|
import psycopg2
|
||||||
import uuid
|
|
||||||
import json
|
import json
|
||||||
import codecs
|
|
||||||
|
|
||||||
def db_connect():
|
def db_connect():
|
||||||
try:
|
try:
|
||||||
|
@ -15,15 +14,18 @@ def db_connect():
|
||||||
db_host = os.getenv("DB_HOST", "localhost")
|
db_host = os.getenv("DB_HOST", "localhost")
|
||||||
db_user = os.getenv("DB_USER", "oedb")
|
db_user = os.getenv("DB_USER", "oedb")
|
||||||
db_password = os.getenv("POSTGRES_PASSWORD", "")
|
db_password = os.getenv("POSTGRES_PASSWORD", "")
|
||||||
db = psycopg2.connect(dbname="oedb",host=db_host,password=db_password,user=db_user)
|
db = psycopg2.connect(dbname="oedb", host=db_host,
|
||||||
|
password=db_password, user=db_user)
|
||||||
|
|
||||||
return db
|
return db
|
||||||
|
|
||||||
|
|
||||||
def standard_headers(resp):
|
def standard_headers(resp):
|
||||||
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')
|
||||||
|
|
||||||
|
|
||||||
class StatsResource(object):
|
class StatsResource(object):
|
||||||
def on_get(self, req, resp):
|
def on_get(self, req, resp):
|
||||||
db = db_connect()
|
db = db_connect()
|
||||||
|
@ -37,6 +39,7 @@ class StatsResource(object):
|
||||||
resp.body = """{"events_count": %s, "last_created": "%s", "last_updated": "%s"}""" % (stat[0], stat[1], stat[2])
|
resp.body = """{"events_count": %s, "last_created": "%s", "last_updated": "%s"}""" % (stat[0], stat[1], stat[2])
|
||||||
resp.status = falcon.HTTP_200
|
resp.status = falcon.HTTP_200
|
||||||
|
|
||||||
|
|
||||||
class EventsResource(object):
|
class EventsResource(object):
|
||||||
def on_get(self, req, resp):
|
def on_get(self, req, resp):
|
||||||
db = db_connect()
|
db = db_connect()
|
||||||
|
@ -53,6 +56,7 @@ JOIN geo ON (hash=events_geo)""");
|
||||||
]}"""
|
]}"""
|
||||||
resp.status = falcon.HTTP_200
|
resp.status = falcon.HTTP_200
|
||||||
|
|
||||||
|
|
||||||
class EventResource(object):
|
class EventResource(object):
|
||||||
def maybe_insert_geometry(self, geometry, cur):
|
def maybe_insert_geometry(self, geometry, cur):
|
||||||
# insert into geo table if not existing
|
# insert into geo table if not existing
|
||||||
|
@ -76,7 +80,8 @@ class EventResource(object):
|
||||||
event_bbox = cur.mogrify(" AND geom && ST_SetSRID(ST_MakeBox2D(ST_Point(%s,%s),ST_Point(%s,%s)),4326) ",tuple(req.params['bbox'])).decode("utf-8")
|
event_bbox = cur.mogrify(" AND geom && ST_SetSRID(ST_MakeBox2D(ST_Point(%s,%s),ST_Point(%s,%s)),4326) ",tuple(req.params['bbox'])).decode("utf-8")
|
||||||
event_dist = ""
|
event_dist = ""
|
||||||
elif 'near' in req.params:
|
elif 'near' in req.params:
|
||||||
# limit search with location+distance (long, lat, distance in meters)
|
# Limit search with location+distance
|
||||||
|
# (long, lat, distance in meters)
|
||||||
if len(req.params['near']) < 3:
|
if len(req.params['near']) < 3:
|
||||||
dist = 1
|
dist = 1
|
||||||
else:
|
else:
|
||||||
|
@ -119,7 +124,7 @@ class EventResource(object):
|
||||||
if req.params['geom'] == 'full':
|
if req.params['geom'] == 'full':
|
||||||
event_geom = "geom"
|
event_geom = "geom"
|
||||||
|
|
||||||
# search recent active events
|
# Search recent active events.
|
||||||
cur.execute("""
|
cur.execute("""
|
||||||
SELECT '{"type":"Feature", "properties": '|| (events_tags::jsonb || jsonb_build_object('id',events_id,'createdate',createdate,'lastupdate',lastupdate """+event_dist+"""))::text ||', "geometry":'|| st_asgeojson("""+event_geom+""") ||' }' as feature
|
SELECT '{"type":"Feature", "properties": '|| (events_tags::jsonb || jsonb_build_object('id',events_id,'createdate',createdate,'lastupdate',lastupdate """+event_dist+"""))::text ||', "geometry":'|| st_asgeojson("""+event_geom+""") ||' }' as feature
|
||||||
FROM events
|
FROM events
|
||||||
|
@ -177,7 +182,7 @@ WHERE events_id=%s;""", (id,))
|
||||||
geometry=json.dumps(j['geometry'])
|
geometry=json.dumps(j['geometry'])
|
||||||
h = self.maybe_insert_geometry(geometry,cur)
|
h = self.maybe_insert_geometry(geometry,cur)
|
||||||
params = (j['properties']['type'], j['properties']['what'], event_start, event_stop, bounds, json.dumps(j['properties']), h[0])
|
params = (j['properties']['type'], j['properties']['what'], event_start, event_stop, bounds, json.dumps(j['properties']), h[0])
|
||||||
if (id):
|
if id:
|
||||||
params = params + (id,)
|
params = params + (id,)
|
||||||
cur.execute(query, params)
|
cur.execute(query, params)
|
||||||
# get newly created event id
|
# get newly created event id
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue