From f240f3534e2db7d88242e05662fbedda1c2b4306 Mon Sep 17 00:00:00 2001 From: leonoverweel Date: Sat, 1 Apr 2017 18:19:04 +0200 Subject: Map HTTP endpoint calls to API paths --- opendc/util/path_parser.py | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 opendc/util/path_parser.py (limited to 'opendc') 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 -- cgit v1.2.3