summaryrefslogtreecommitdiff
path: root/opendc/util
diff options
context:
space:
mode:
authorleonoverweel <l.overweel@gmail.com>2017-04-01 18:19:04 +0200
committerleonoverweel <l.overweel@gmail.com>2017-04-01 18:19:04 +0200
commitf240f3534e2db7d88242e05662fbedda1c2b4306 (patch)
treea712186b252183d224fd8bd185de88a4654e6cfd /opendc/util
parent7defb450529d6283bc357852f56ca76f7443dd8f (diff)
Map HTTP endpoint calls to API paths
Diffstat (limited to 'opendc/util')
-rw-r--r--opendc/util/path_parser.py27
1 files changed, 27 insertions, 0 deletions
diff --git a/opendc/util/path_parser.py b/opendc/util/path_parser.py
new file mode 100644
index 00000000..2bc4e002
--- /dev/null
+++ b/opendc/util/path_parser.py
@@ -0,0 +1,27 @@
+import json
+import sys
+import re
+
+def parse(version, endpoint_path):
+ """Map an HTTP call to an API path"""
+
+ with open('opendc/api/{}/paths.json'.format(version)) as paths_file:
+ paths = json.load(paths_file)
+
+ endpoint_path_parts = endpoint_path.split('/')
+ paths_parts = [x.split('/') for x in paths if len(x.split('/')) == len(endpoint_path_parts)]
+
+ for path_parts in paths_parts:
+ found = True
+
+ for (endpoint_part, part) in zip(endpoint_path_parts, path_parts):
+ print endpoint_part, part
+ if not part.startswith('{') and endpoint_part != part:
+ found = False
+ break
+
+ if found:
+ sys.stdout.flush()
+ return '{}/{}'.format(version, '/'.join(path_parts))
+
+ return None