aboutsummaryrefslogtreecommitdiff
path: root/server/server.py
diff options
context:
space:
mode:
authorPaul Oliver <contact@pauloliver.dev>2024-02-29 03:01:41 +0100
committerPaul Oliver <contact@pauloliver.dev>2024-02-29 03:01:41 +0100
commitd0704be9edb02f9a70403c4fb298d3750e487ba3 (patch)
treef188dc82effe1ccb4452697e318be4c57543e134 /server/server.py
Flask server and endpoints
Diffstat (limited to 'server/server.py')
-rw-r--r--server/server.py28
1 files changed, 28 insertions, 0 deletions
diff --git a/server/server.py b/server/server.py
new file mode 100644
index 0000000..f1ddaa9
--- /dev/null
+++ b/server/server.py
@@ -0,0 +1,28 @@
+from datetime import datetime
+from flask import abort, Flask, jsonify
+from flask_cors import CORS
+from pytz import common_timezones, timezone
+
+
+app = Flask(__name__)
+CORS(app)
+
+
+@app.route('/zones/', methods=['GET'])
+def zones():
+ """ Return a list of common timezones """
+ return jsonify(common_timezones)
+
+
+@app.route('/time-at/<path:zone>', methods=['GET'])
+def time_at(zone):
+ """ Return current time at given timezone """
+ if zone not in common_timezones:
+ abort(404)
+
+ tzobj = timezone(zone)
+
+ return jsonify({
+ 'zone': tzobj.zone,
+ 'time': datetime.now(tzobj).strftime('%a %d %b %Y %H:%M:%S'),
+ })