diff --git a/module.py b/module.py index ee97b35a2a6c20de83d61f0c18134f304e8befef..417eccce69e6ba0235d60dad1618ca7c7a6d43af 100644 --- a/module.py +++ b/module.py @@ -11,6 +11,7 @@ import hashlib import logging import os import tempfile +import urllib import zipfile from MDmisc.egit import git_version @@ -60,6 +61,26 @@ def version(): def http_error_handler( error ): return redirect( baseurl ) +################################################################################ +# Get all the routes + +@api.route( baseurl + '/routes' ) +def list_routes(): + output = [] + for rule in api.url_map.iter_rules(): + options = {} + for arg in rule.arguments: + options[ arg ] = "[{0}]".format( arg ) + + methods = ','.join( rule.methods ) + url = url_for( rule.endpoint, **options ) + output.append( { + 'method': methods, + 'url': urllib.unquote( url ) + } ) + + return jsonify( output ) + ################################################################################ # Generic file serving