3 # Licensed under the Apache License, Version 2.0 (the "License");
4 # you may not use this file except in compliance with the License.
5 # You may obtain a copy of the License at
7 # http://www.apache.org/licenses/LICENSE-2.0
9 # Unless required by applicable law or agreed to in writing, software
10 # distributed under the License is distributed on an "AS IS" BASIS,
11 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 # See the License for the specific language governing permissions and
13 # limitations under the License.
16 from flask_restful import Resource, reqparse
17 from yarf.authentication.base_auth import login_required
19 class BaseResource(Resource):
20 # THESE VALUES ARE FILLED BY THE FRAMEWORK
21 method_decorators = None
22 # authentication_method = None
28 # USED INTERNALLY ONLY
30 def add_wrappers(cls):
31 cls.method_decorators = [login_required]
32 for extra_wrapper in cls.extra_wrappers:
33 if extra_wrapper not in cls.method_decorators:
34 cls.logger.debug("Adding wrapper %s", extra_wrapper)
35 cls.method_decorators.append(extra_wrapper)
37 cls.logger.debug("Not added %s", extra_wrapper)
40 def add_parser_arguments(cls):
41 cls.parser = reqparse.RequestParser()
42 for argument in cls.parser_arguments:
43 if isinstance(argument, cls.int_arg_class):
44 cls.parser.add_argument(argument.argument_class)
46 cls.parser.add_argument(argument)