Archived
1
0
Fork 0
This repository has been archived on 2024-06-28. You can view files and clone it, but cannot push or open issues or pull requests.
hunger/server.py
2017-06-09 13:28:28 +02:00

61 lines
1.9 KiB
Python

from datetime import date
from pprint import pprint
import pymysql
from flask import Flask, jsonify, url_for, redirect, request, abort
from flask.json import JSONEncoder
app = Flask(__name__)
import config
# Connect to the database
connection = pymysql.connect(host=config.host,
user=config.user,
password=config.password,
db=config.db,
charset='utf8mb4',
cursorclass=pymysql.cursors.DictCursor,
unix_socket='/var/run/mysqld/mysqld.sock')
@app.route('/api/venue/')
def get_venues():
with connection.cursor() as cursor:
sql = "SELECT * FROM venues"
cursor.execute(sql)
venues = cursor.fetchall()
for venue in venues:
# venue["meals_url"] = url_for("get_meals", venueid=venue["id"])
venue["meals_url"] = url_for("get_meals", venueid=venue["id"], _external=True)
return jsonify(venues)
@app.route('/api/venue/<int:venueid>/')
def get_meals(venueid):
with connection.cursor() as cursor:
print("GFGDGDG")
select = request.args.get("select")
if not select or select == "week":
sql_range = " AND YEARWEEK(date, 1) = YEARWEEK(CURDATE(), 1)"
elif select == "today":
sql_range = " AND date=CURDATE()"
else:
return abort(400)
sql = """SELECT venue, date, name, description
FROM menus
JOIN meals ON meals.id = menus.meal
WHERE venue = %s"""
cursor.execute(sql + sql_range, venueid)
menues = cursor.fetchall()
for menu in menues:
menu["date"] = menu["date"].isoformat()
return jsonify(menues)
@app.route("/")
def redirect_to_correct_api():
return redirect(url_for("get_venues"))
if __name__ == "__main__":
app.run(debug=True)