Provide base controllers and services for simplifiying custom API implementation.
Project description
This addon aims to provide a basic service and controller structure to simplify a rest custom implemenation in other odoo modules.
Usage
On our custom module. When we need to expose an specific model we’ll create a service extending from the base ones.
from odoo.addons.component.core import Component
from odoo.addons.base_rest_base_structure.models.api_services_utils import APIServicesUtils
class CustomModelService(Component):
_inherit = "base.rest.private_abstract_service"
_name = "custom_module.custom_model.services"
_usage = "custom-endpoint"
_description = """
Custom Model Service
"""
def get(self, _id):
record = self.env["custom_module.custom_model"].search(
[("id", "=", _id)]
)
if record:
record.ensure_one()
utils = APIServicesUtils.get_instance()
# Define here all fields to be passed to the response
attributes = ["name"]
# Define here all many2one fields to be passed to the response
rel_attributes = {
"rel_model_id" : "name"
}
return utils.generate_get_dictionary(record,attributes,rel_attributes)
else:
raise wrapJsonException(
NotFound(_("No reward record for id %s") % _id)
)
def create(self, **params):
utils = APIServicesUtils.get_instance()
# define all fields that the API receive
attributes = ["name"]
create_dict = utils.generate_create_dictionary(params,attributes)
record = self.env["custom_module.custom_model"].create(create_dict)
return {"_id": record.id}
# rest of methods defined below
Changelog
12.0.1.0.0
First official version.
Bug Tracker
Bugs are tracked on GitLab Issues. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us smashing it by providing a detailed and welcomed feedback.
Credits
Based on the initial work of Robin Keunen <robin@coopiteasy.be> for easy_my_coop_api module and on base_rest_demo from OCA rest-api. Trying to decople this functionallity from easy_my_coop vertical-cooperative infraestructure.
Contributors
Dani Quilez <dani.quilez@coopdevs.org>
Maintainers
This module is maintained by Coopdevs Treball SCCL.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
Hashes for odoo12_addon_base_rest_base_structure-12.0.1.0.3-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8cd7c3831211288a8b94a6342267ad7865f29ca3ddf97b51425e267533bb71c1 |
|
MD5 | d469b973d4647bada0cbcf3601eff90b |
|
BLAKE2b-256 | 1b9abf11fb35aea03b695918dfe14a8c55c45a2e077392885945d2a6fe399ce8 |