Commit 61049326 authored by Klaus-Uwe Mitterer's avatar Klaus-Uwe Mitterer

Build SQL query for endpoint

parent 2483b2da
import cgi
import datetime
import pymysql
def application(env, re):
if env["REQUEST_METHOD"] == "POST":
args = cgi.parse_qs(env['wsgi.input'].readline().decode(), True)
elif env["REQUEST_METHOD"] == "GET":
args = cgi.parse_qs(env['QUERY_STRING'], True)
else:
re("405 Method Not Allowed", [])
return
if env["PATH_INFO"] == "/endpoint":
try:
device = args["device"][0]
except:
re("400 Bad Request", [])
yield "<h1>400 Bad Request</h1>".encode()
yield "device is required.".encode()
try:
latitude = float(args["lat"][0].replace(",", "."))
longitude = float(args["lon"][0].replace(",", "."))
except Exception as e:
re("400 Bad Request", [])
yield "<h1>400 Bad Request</h1>".encode()
yield "lat and lon are required.".encode()
return
try:
altitude = float(args["alt"][0].replace(",", "."))
except:
altitude = None
try:
timestamp = datetime.datetime.fromtimestamp(float(args["t"][0]) / 1000)
except:
timestamp = datetime.datetime.now()
timestr = timestamp.strftime('%Y-%m-%d %H:%M:%S')
sql = "INSERT INTO tracker(ts, device, lat, lon, alt) VALUES (\"%s\", \"%s\", %s, %s, %s);" % (timestr, device, str(latitude), str(longitude), str(altitude) or "None")
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment