class DummyResource(Resource): def __init__(self): super(DummyResource, self).__init__() self.resourceName = 'foo' for method, pathElements, _testPath in Routes: self.route(method, pathElements, self.handler) @access.public @describe.describeRoute(describe.Description('Does nothing')) def handler(self, **kwargs): return kwargs
class DummyResource(Resource): def __init__(self): self.resourceName = 'foo' for method, pathElements, testPath in OrderedRoutes: self.route(method, pathElements, self.handler) @access.public def handler(self, **kwargs): return kwargs handler.description = describe.Description('Does nothing')
class OldResource(Resource): def __init__(self): super(OldResource, self).__init__() self.resourceName = 'old_resource' self.route('GET', (), self.handler) self.route('GET', ('deprecated',), self.deprecatedHandler) @access.public @describe.describeRoute( describe.Description('Handler') ) def handler(self, params): return None @access.public @describe.describeRoute( describe.Description('Deprecated handler') .deprecated() ) def deprecatedHandler(self, params): return None
class ModelResource(Resource): def __init__(self): super(ModelResource, self).__init__() self.resourceName = 'model' self.route('POST', (), self.hasModel) @access.public def hasModel(self, params): pass hasModel.description = describe.Description('What a model') \ .param('body', 'Where its at!', dataType='Body', required=True, paramType='body')
class AutoDescribe(Resource): def __init__(self): super(AutoDescribe, self).__init__() self.resourceName = 'auto_describe' self.route('GET', ('test', ), self.test) self.route('POST', ('body', ), self.body) self.route('POST', ('json_body', ), self.jsonBody) self.route('POST', ('json_body_required', ), self.jsonBodyRequired) self.route('GET', ('model_param_flags', ), self.hasModelParamFlags) self.route('GET', ('model_param_query', ), self.hasModelQueryParam) self.route('GET', ('json_schema', ), self.hasJsonSchema) self.route('GET', ('missing_arg', ), self.hasMissingArg) @access.public @describe.autoDescribeRoute( describe.Description('test').param( 'b1', '', dataType='boolean', required=False, default=True).param('b2', '', dataType='boolean', required=False).param( 'float', '', dataType='number', required=False, default=1.0).param( 'integer', '', dataType='integer', required=False).param( 'timestamp', '', dataType='dateTime', required=False). param('datestamp', '', dataType='date', required=False).param( 'string', '', enum=['hello', 'world'], strip=True, lower=True).param('upper', '', required=False, upper=True).jsonParam( 'json1', '', required=False, requireArray=True).jsonParam( 'json2', '', required=False, requireObject=True, default={})) def test(self, b1, b2, string, upper, integer, float, timestamp, datestamp, json1, json2, params): testRuns.append({ 'b1': b1, 'b2': b2, 'string': string, 'upper': upper, 'integer': integer, 'float': float, 'timestamp': timestamp, 'datestamp': datestamp, 'json1': json1, 'json2': json2 }) @access.public @describe.autoDescribeRoute( describe.Description('body').param('body', '', required=False, paramType='body')) def body(self, body): testRuns.append({'body': body}) @access.public @describe.autoDescribeRoute( describe.Description('json_body').jsonParam('json_body', '', required=False, paramType='body')) def jsonBody(self, json_body): testRuns.append({'json_body': json_body}) @access.public @describe.autoDescribeRoute( describe.Description('json_body_required').jsonParam( 'json_body', '', required=True, requireObject=True, paramType='body')) def jsonBodyRequired(self, json_body): testRuns.append({'json_body': json_body}) @access.public @describe.autoDescribeRoute( describe.Description('has_model_param_query').modelParam( 'userId', model='user', level=AccessType.READ, paramType='query')) @filtermodel(model='user') def hasModelQueryParam(self, user): return user @access.public @describe.autoDescribeRoute( describe.Description('has_model_param_flags').modelParam( 'userId', model='user', level=AccessType.READ, paramType='query', requiredFlags='my_flag')) def hasModelParamFlags(self, user): return user @access.public @describe.autoDescribeRoute( describe.Description('has_json_schema').jsonParam( 'obj', '', schema={ 'type': 'object', 'required': ['foo', 'bar'] })) def hasJsonSchema(self, obj): return obj @access.public @describe.autoDescribeRoute( describe.Description('has_missing_arg').param('foo', '')) def hasMissingArg(self, params): return params