Browse Source

Aug 31: [FIX] Bug Fixed 'rest_api_odoo'

pull/331/head
Cybrosys Technologies 8 months ago
parent
commit
3758ba6aa4
  1. 257
      rest_api_odoo/Postman Collections/Odoo REST Api.postman_collection.json
  2. 21
      rest_api_odoo/controllers/rest_api_odoo.py
  3. 5
      rest_api_odoo/doc/RELEASE_NOTES.md
  4. 2
      rest_api_odoo/static/description/index.html

257
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": []
}
]
}

21
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
})

5
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

2
rest_api_odoo/static/description/index.html

@ -33,7 +33,7 @@
Community
</div>
<div class="text-center"
style="background-color:#875A7B !important;font-size: 0.8rem !important; color:#fff !important; font-weight:500 !important; padding:4px !important; margin:0 3px !important; border-radius:50px !important; min-width: 120px !important;">
style="background-color:#017E84 !important;font-size: 0.8rem !important; color:#fff !important; font-weight:500 !important; padding:4px !important; margin:0 3px !important; border-radius:50px !important; min-width: 120px !important;">
Enterprise
</div>
</div>

Loading…
Cancel
Save