65 lines
1.8 KiB
Python
65 lines
1.8 KiB
Python
# -*- coding: utf-8 -*-
|
|
# Copyright 2013-2017 Camptocamp SA
|
|
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html)
|
|
|
|
"""
|
|
|
|
Backend Adapter
|
|
===============
|
|
|
|
An external adapter has a common interface to speak with the backend.
|
|
It translates the basic orders (search, read, write) to the protocol
|
|
used by the backend.
|
|
|
|
"""
|
|
|
|
from odoo.addons.component.core import AbstractComponent
|
|
|
|
|
|
class BackendAdapter(AbstractComponent):
|
|
""" Base Backend Adapter for the connectors """
|
|
|
|
_name = 'base.backend.adapter'
|
|
_inherit = 'base.connector'
|
|
_usage = 'backend.adapter'
|
|
|
|
|
|
class CRUDAdapter(AbstractComponent):
|
|
""" Base External Adapter specialized in the handling
|
|
of records on external systems.
|
|
|
|
This is an empty shell, Components can inherit and implement their own
|
|
implementation for the methods.
|
|
|
|
"""
|
|
|
|
_name = 'base.backend.adapter.crud'
|
|
_inherit = 'base.backend.adapter'
|
|
_usage = 'backend.adapter'
|
|
|
|
def search(self, *args, **kwargs):
|
|
""" Search records according to some criterias
|
|
and returns a list of ids """
|
|
raise NotImplementedError
|
|
|
|
def read(self, *args, **kwargs):
|
|
""" Returns the information of a record """
|
|
raise NotImplementedError
|
|
|
|
def search_read(self, *args, **kwargs):
|
|
""" Search records according to some criterias
|
|
and returns their information"""
|
|
raise NotImplementedError
|
|
|
|
def create(self, *args, **kwargs):
|
|
""" Create a record on the external system """
|
|
raise NotImplementedError
|
|
|
|
def write(self, *args, **kwargs):
|
|
""" Update records on the external system """
|
|
raise NotImplementedError
|
|
|
|
def delete(self, *args, **kwargs):
|
|
""" Delete a record on the external system """
|
|
raise NotImplementedError
|