summaryrefslogtreecommitdiffstats
path: root/result_collection_api/tornado_swagger_ui/tornado_swagger/swagger.py
diff options
context:
space:
mode:
Diffstat (limited to 'result_collection_api/tornado_swagger_ui/tornado_swagger/swagger.py')
-rw-r--r--result_collection_api/tornado_swagger_ui/tornado_swagger/swagger.py38
1 files changed, 32 insertions, 6 deletions
diff --git a/result_collection_api/tornado_swagger_ui/tornado_swagger/swagger.py b/result_collection_api/tornado_swagger_ui/tornado_swagger/swagger.py
index 0939b0d..50b2cfe 100644
--- a/result_collection_api/tornado_swagger_ui/tornado_swagger/swagger.py
+++ b/result_collection_api/tornado_swagger_ui/tornado_swagger/swagger.py
@@ -64,6 +64,8 @@ class DocParser(object):
parser = {
'param': self._parse_param,
'type': self._parse_type,
+ 'in': self._parse_in,
+ 'required': self._parse_required,
'rtype': self._parse_rtype,
'property': self._parse_property,
'ptype': self._parse_ptype,
@@ -80,9 +82,6 @@ class DocParser(object):
self.params.setdefault(arg, {}).update({
'name': arg,
'description': body,
- 'paramType': arg,
- 'required': True,
- 'allowMultiple': False
})
if 'paramType' not in self.params[arg]:
@@ -96,6 +95,22 @@ class DocParser(object):
'dataType': body
})
+ def _parse_in(self, **kwargs):
+ arg = kwargs.get('arg', None)
+ body = self._get_body(**kwargs)
+ self.params.setdefault(arg, {}).update({
+ 'name': arg,
+ 'paramType': body
+ })
+
+ def _parse_required(self, **kwargs):
+ arg = kwargs.get('arg', None)
+ body = self._get_body(**kwargs)
+ self.params.setdefault(arg, {}).update({
+ 'name': arg,
+ 'required': False if body in ['False', 'false'] else True
+ })
+
def _parse_rtype(self, **kwargs):
body = self._get_body(**kwargs)
self.responseClass = body
@@ -162,13 +177,25 @@ class DocParser(object):
class model(DocParser):
- def __init__(self, cls=None, *args, **kwargs):
+ def __init__(self, *args, **kwargs):
super(model, self).__init__()
- self.id = cls.__name__
self.args = args
self.kwargs = kwargs
self.required = []
+ self.cls = None
+
+ def __call__(self, *args, **kwargs):
+ if self.cls:
+ return self.cls
+ cls = args[0]
+ self._parse_model(cls)
+
+ return cls
+
+ def _parse_model(self, cls):
+ self.id = cls.__name__
+ self.cls = cls
if '__init__' in dir(cls):
self._parse_args(cls.__init__)
self.parse_docstring(inspect.getdoc(cls))
@@ -188,7 +215,6 @@ class model(DocParser):
self.properties.setdefault(arg, {'type': 'string', "default": default})
-
class operation(DocParser):
def __init__(self, nickname=None, **kwds):
super(operation, self).__init__()