Coverage for girder/api/docs: 100%

# Coverage for girder/api/docs : 100%

## 19 statements 19 run 0 missing 0 excluded

Hot-keys on this page

r m x p toggle line displays

j k next/prev highlighted chunk

0 (zero) top of page

1 (one) first highlighted chunk

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 | #!/usr/bin/env python # -*- coding: utf-8 -*- ############################################################################### # Copyright Kitware Inc. # # Licensed under the Apache License, Version 2.0 ( the "License" ); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. ############################################################################### import collections discovery = set() routes = collections.defaultdict(dict) models = {} def addRouteDocs(resource, route, method, info, handler): """ This is called for route handlers that have a description attr on them. It gathers the necessary information to build the swagger documentation, which is consumed by the docs.Describe endpoint. :param resource: The name of the resource, e.g. "item" :type resource: str :param route: The route to describe. :type route: list :param method: The HTTP method for this route, e.g. "POST" :type method: str :param info: The information representing the API documentation. :type info: dict """ # Convert wildcard tokens from :foo form to {foo} form. convRoute = [] for token in route: if token[0] == ':': convRoute.append('{{{}}}'.format(token[1:])) else: convRoute.append(token) path = '/'.join(['', resource] + convRoute) info = info.copy() info['httpMethod'] = method.upper() if 'nickname' not in info: info['nickname'] = handler.__name__ # Add the operation to the given route if path not in routes[resource]: routes[resource][path] = [] routes[resource][path].append(info) discovery.add(resource)