from .. import controller from odoo import http from odoo.http import request import json class Partner(controller.Controller): _name = 'res.partner' prefix = '/api/v1/' @http.route(prefix + 'partner/address/', auth='public', methods=['GET', 'OPTIONS']) @controller.Controller.must_authorized() def get_partner_address_by_id(self, **kw): partner = request.env['res.partner'].search([('id', '=', 14)]) # return self.response(partner) return self.response({ 'id': partner.id, 'name': partner.name, 'phone': partner.phone }) @http.route('/odoo_controller/odoo_controller/', auth='public') def index(self, **kw): return 'OK' @http.route(prefix + 'wati/notification', auth='none', type='http', csrf=False, methods=['POST', 'OPTIONS']) def notification(self, **kw): try: data = json.loads(request.httprequest.data or '{}') # fallback to empty dict except json.JSONDecodeError: data = {} # if invalid JSON, treat as empty # Do something with `data` return request.make_response("OK", headers=[('Content-Type', 'application/json')])