From 289d5ee3bb2a4db0b0d6229a153951d26ee3e0c0 Mon Sep 17 00:00:00 2001 From: Nazar Gondaruk Date: Tue, 3 Apr 2018 19:46:59 +0300 Subject: [PATCH] Fix aiohttp route resource A couple of route properties migrated to resource instance in new versions, which was a reason of 500 error in index page. --- pydatacoll/api_server.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/pydatacoll/api_server.py b/pydatacoll/api_server.py index 0c5e343..8ee3dc5 100644 --- a/pydatacoll/api_server.py +++ b/pydatacoll/api_server.py @@ -114,9 +114,14 @@ async def get_index(self, request): doc_list = ['PyDataColl is running, available API:\n'] method_dict = defaultdict(list) for route in self.web_app.router.routes(): + if hasattr(route, 'resource'): + _path = route.resource._formatter if hasattr(route.resource, '_formatter')\ + else route.resource._path + else: + _path = route._formatter if hasattr(route, '_formatter')\ + else route._path method_dict[route.method].append('method: {:<8} URL: {}://{}{}'.format( - route.method, request.scheme, request.host, route._formatter if hasattr(route, '_formatter') else - route._path)) + route.method, request.scheme, request.host, _path)) doc_list.append('\n'.join(sorted(method_dict['GET']))) doc_list.append('\n'.join(sorted(method_dict['POST']))) doc_list.append('\n'.join(sorted(method_dict['PUT'])))