about summary refs log tree commit diff
path: root/gn3/api
diff options
context:
space:
mode:
Diffstat (limited to 'gn3/api')
-rw-r--r--gn3/api/async_commands.py21
1 files changed, 21 insertions, 0 deletions
diff --git a/gn3/api/async_commands.py b/gn3/api/async_commands.py
new file mode 100644
index 0000000..f8400c8
--- /dev/null
+++ b/gn3/api/async_commands.py
@@ -0,0 +1,21 @@
+"""Endpoints and functions concerning commands run in external processes."""
+import json
+
+import redis
+from flask import jsonify, Blueprint
+
+async_commands = Blueprint("async_commands", __name__)
+
+@async_commands.route("/state/<command_id>")
+def command_state(command_id):
+    with redis.Redis() as rconn:
+        state = rconn.hgetall(name=command_id)
+        if not state:
+            return jsonify(
+                status=404,
+                error="The command id provided does not exist.")
+        state = {
+            key.decode("utf-8"): val.decode("utf8")
+            for key,val in state.items()
+        }
+        return jsonify(state)