diff --git a/rest_api_odoo/Postman Collections/Odoo REST Api.postman_collection.json b/rest_api_odoo/Postman Collections/Odoo REST Api.postman_collection.json new file mode 100644 index 000000000..f474d5311 --- /dev/null +++ b/rest_api_odoo/Postman Collections/Odoo REST Api.postman_collection.json @@ -0,0 +1,257 @@ +{ + "info": { + "_postman_id": "83d9071d-626d-41ed-9800-78570ed11a7c", + "name": "Odoo REST Api", + "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json", + "_exporter_id": "28148668" + }, + "item": [ + { + "name": "Authentication", + "request": { + "method": "GET", + "header": [ + { + "key": "db", + "value": "sep_db", + "type": "text" + }, + { + "key": "login", + "value": "123", + "type": "text" + }, + { + "key": "password", + "value": "123", + "type": "text" + }, + { + "key": "", + "value": "", + "type": "text", + "disabled": true + } + ], + "url": { + "raw": "http://cybrosys:8016/odoo_connect", + "protocol": "http", + "host": [ + "cybrosys" + ], + "port": "8016", + "path": [ + "odoo_connect" + ] + } + }, + "response": [] + }, + { + "name": "GET records", + "protocolProfileBehavior": { + "disableBodyPruning": true + }, + "request": { + "method": "GET", + "header": [ + { + "key": "login", + "value": "123", + "type": "text" + }, + { + "key": "password", + "value": "123", + "type": "text" + }, + { + "key": "api-key", + "value": "4314c30b-994e-435d-a493-50cb0d33e99d", + "type": "text" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"fields\": [\"name\",\"product_id\"]\n \n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "http://cybrosys:8016/send_request?model=mrp.production&Id=10", + "protocol": "http", + "host": [ + "cybrosys" + ], + "port": "8016", + "path": [ + "send_request" + ], + "query": [ + { + "key": "model", + "value": "mrp.production" + }, + { + "key": "Id", + "value": "10" + } + ] + } + }, + "response": [] + }, + { + "name": "Create Records", + "request": { + "method": "POST", + "header": [ + { + "key": "login", + "value": "123", + "type": "text" + }, + { + "key": "password", + "value": "123", + "type": "text" + }, + { + "key": "api_key", + "value": "4314c30b-994e-435d-a493-50cb0d33e99d", + "type": "text" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"fields\" :[\"name\",\"phone\"] ,\n \"values\": {\"name\": \"abc\",\n \"phone\":\"55962441552\"\n }\n\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "http://cybrosys:8016/send_request?model=res.partner", + "protocol": "http", + "host": [ + "cybrosys" + ], + "port": "8016", + "path": [ + "send_request" + ], + "query": [ + { + "key": "model", + "value": "res.partner" + } + ] + } + }, + "response": [] + }, + { + "name": "Update Records", + "request": { + "method": "PUT", + "header": [ + { + "key": "login", + "value": "123", + "type": "text" + }, + { + "key": "password", + "value": "123", + "type": "text" + }, + { + "key": "api-key", + "value": "d52cd3de-ad4c-49ab-a5cb-727940b8117a", + "type": "text" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"fields\" :[\"name\",\"phone\"] ,\n \"values\": {\"name\": \"abc\",\n \"phone\":\"55962441552\"\n }\n\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "http://cybrosys:8016/send_request?model=res.partner&Id=48", + "protocol": "http", + "host": [ + "cybrosys" + ], + "port": "8016", + "path": [ + "send_request" + ], + "query": [ + { + "key": "model", + "value": "res.partner" + }, + { + "key": "Id", + "value": "48" + } + ] + } + }, + "response": [] + }, + { + "name": "Delete Records", + "request": { + "method": "DELETE", + "header": [ + { + "key": "login", + "value": "123", + "type": "text" + }, + { + "key": "password", + "value": "123", + "type": "text" + }, + { + "key": "api-key", + "value": "d52cd3de-ad4c-49ab-a5cb-727940b8117a", + "type": "text" + } + ], + "url": { + "raw": "http://cybrosys:8016/send_request?model=res.partner&Id=48", + "protocol": "http", + "host": [ + "cybrosys" + ], + "port": "8016", + "path": [ + "send_request" + ], + "query": [ + { + "key": "model", + "value": "res.partner" + }, + { + "key": "Id", + "value": "48" + } + ] + } + }, + "response": [] + } + ] +} \ No newline at end of file diff --git a/rest_api_odoo/controllers/rest_api_odoo.py b/rest_api_odoo/controllers/rest_api_odoo.py index 53dfbe43e..61145a47e 100644 --- a/rest_api_odoo/controllers/rest_api_odoo.py +++ b/rest_api_odoo/controllers/rest_api_odoo.py @@ -21,6 +21,8 @@ ############################################################################# import json import logging +from datetime import datetime + from odoo import http from odoo.http import request @@ -77,10 +79,17 @@ class RestApi(http.Controller): datas = [] if rec_id != 0: partner_records = request.env[ - str(model_name)].search_read( + str(model_name) + ].search_read( domain=[('id', '=', rec_id)], fields=fields ) + + # Manually convert datetime fields to string format + for record in partner_records: + for key, value in record.items(): + if isinstance(value, datetime): + record[key] = value.isoformat() data = json.dumps({ 'records': partner_records }) @@ -88,10 +97,18 @@ class RestApi(http.Controller): return request.make_response(data=datas) else: partner_records = request.env[ - str(model_name)].search_read( + str(model_name) + ].search_read( domain=[], fields=fields ) + + # Manually convert datetime fields to string format + for record in partner_records: + for key, value in record.items(): + if isinstance(value, datetime): + record[key] = value.isoformat() + data = json.dumps({ 'records': partner_records }) diff --git a/rest_api_odoo/doc/RELEASE_NOTES.md b/rest_api_odoo/doc/RELEASE_NOTES.md index 9a7469312..d281db9ab 100644 --- a/rest_api_odoo/doc/RELEASE_NOTES.md +++ b/rest_api_odoo/doc/RELEASE_NOTES.md @@ -3,3 +3,8 @@ #### 16.04.2024 #### Version 17.0.1.0.0 - Initial Commit for Odoo rest API + +#### 31.08.2024 +#### Version 17.0.1.0.1 +##### BUG FIX +- Updated the issue of date fields diff --git a/rest_api_odoo/static/description/index.html b/rest_api_odoo/static/description/index.html index 9f8a37823..2bdcc0ac9 100644 --- a/rest_api_odoo/static/description/index.html +++ b/rest_api_odoo/static/description/index.html @@ -33,7 +33,7 @@ Community