mirror of
https://github.com/bringout/oca-technical.git
synced 2026-04-18 04:52:04 +02:00
53 lines
2 KiB
Python
53 lines
2 KiB
Python
# Copyright 2021 Camptocamp
|
|
# License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl).
|
|
from odoo.addons.component.core import Component
|
|
|
|
|
|
class BaseRestCerberusValidator(Component):
|
|
"""Component used to lookup the input/output validator methods
|
|
|
|
To modify in your services collection::
|
|
|
|
class MyCollectionRestCerberusValidator(Component):
|
|
_name = "mycollection.rest.cerberus.validator"
|
|
_inherit = "base.rest.cerberus.validator"
|
|
_usage = "cerberus.validator"
|
|
_collection = "mycollection"
|
|
|
|
def get_validator_handler(self, service, method_name, direction):
|
|
# customize
|
|
|
|
def has_validator_handler(self, service, method_name, direction):
|
|
# customize
|
|
|
|
"""
|
|
|
|
_name = "base.rest.cerberus.validator"
|
|
_usage = "cerberus.validator"
|
|
_is_rest_service_component = False # marker to retrieve REST components
|
|
|
|
def get_validator_handler(self, service, method_name, direction):
|
|
"""Get the validator handler for a method
|
|
|
|
By default, it returns the method on the current service instance. It
|
|
can be customized to delegate the validators to another component.
|
|
|
|
The returned method will be called without arguments, and is expected
|
|
to return the schema.
|
|
|
|
direction is either "input" for request schema or "output" for responses.
|
|
"""
|
|
return getattr(service, method_name)
|
|
|
|
def has_validator_handler(self, service, method_name, direction):
|
|
"""Return if the service has a validator handler for a method
|
|
|
|
By default, it returns True if the the method exists on the service. It
|
|
can be customized to delegate the validators to another component.
|
|
|
|
The returned method will be called without arguments, and is expected
|
|
to return the schema.
|
|
|
|
direction is either "input" for request schema or "output" for responses.
|
|
"""
|
|
return hasattr(service, method_name)
|