diff options
| author | leonoverweel <l.overweel@gmail.com> | 2017-04-01 18:19:04 +0200 |
|---|---|---|
| committer | leonoverweel <l.overweel@gmail.com> | 2017-04-01 18:19:04 +0200 |
| commit | f240f3534e2db7d88242e05662fbedda1c2b4306 (patch) | |
| tree | a712186b252183d224fd8bd185de88a4654e6cfd /opendc/util | |
| parent | 7defb450529d6283bc357852f56ca76f7443dd8f (diff) | |
Map HTTP endpoint calls to API paths
Diffstat (limited to 'opendc/util')
| -rw-r--r-- | opendc/util/path_parser.py | 27 |
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 |
