fix: use standard odoo jsonrpc protocol
This commit is contained in:
@@ -46,6 +46,8 @@ webhook_url = CHANGE_ME_ROCKET_CHAT_WEBHOOK_URL
|
||||
|
||||
[odoo]
|
||||
url = https://CHANGE_ME_ODOO_HOST
|
||||
database = CHANGE_ME_ODOO_DATABASE
|
||||
username = CHANGE_ME_ODOO_USERNAME
|
||||
api_key = CHANGE_ME_ODOO_API_KEY
|
||||
model = helpdesk.ticket
|
||||
|
||||
@@ -82,24 +84,41 @@ Hors WAPT, le script ne peut pas etre lance tel quel sans fournir les objets et
|
||||
|
||||
Le runtime lit et ecrit ce fichier dans `WAPT.private_dir`. Il n'est pas versionne dans le depot.
|
||||
|
||||
La cle API est utilisee comme mot de passe d'API Odoo pour authentifier `username`. Il est aussi possible de renseigner `uid` dans la section `[odoo]` pour eviter l'appel d'authentification.
|
||||
|
||||
## Protocole Odoo
|
||||
|
||||
Le script utilise l'endpoint configure sous la forme `<odoo.url>/jsonrpc` avec un payload JSON-RPC direct :
|
||||
Le script utilise l'endpoint configure sous la forme `<odoo.url>/jsonrpc` avec le protocole JSON-RPC Odoo standard.
|
||||
|
||||
Authentification :
|
||||
|
||||
```json
|
||||
{
|
||||
"jsonrpc": "2.0",
|
||||
"method": "call",
|
||||
"params": {
|
||||
"model": "helpdesk.ticket",
|
||||
"method": "search_read",
|
||||
"args": [[], ["id", "write_date"]]
|
||||
"service": "common",
|
||||
"method": "authenticate",
|
||||
"args": ["database", "username", "api_key", {}]
|
||||
},
|
||||
"id": 1
|
||||
}
|
||||
```
|
||||
|
||||
Il faut donc que l'instance Odoo expose bien un endpoint compatible avec ce format. Si l'instance attend le protocole externe Odoo standard `execute_kw`, il faudra adapter `fetch_odoo_tickets()`.
|
||||
Lecture des tickets :
|
||||
|
||||
```json
|
||||
{
|
||||
"jsonrpc": "2.0",
|
||||
"method": "call",
|
||||
"params": {
|
||||
"service": "object",
|
||||
"method": "execute_kw",
|
||||
"args": ["database", "uid", "api_key", "helpdesk.ticket", "search_read", [[]], {"fields": ["id", "write_date"]}]
|
||||
},
|
||||
"id": 1
|
||||
}
|
||||
```
|
||||
|
||||
## Tests
|
||||
|
||||
@@ -116,6 +135,6 @@ python3 -m unittest discover -s tests
|
||||
|
||||
## Prochaines ameliorations recommandees
|
||||
|
||||
1. Confirmer en environnement cible que l'endpoint Odoo accepte bien le payload JSON-RPC direct documente ci-dessus.
|
||||
1. Confirmer en environnement cible que l'utilisateur Odoo configure a bien acces au modele `helpdesk.ticket`.
|
||||
2. Completer les metadonnees `WAPT/control` selon les conventions internes Comitari.
|
||||
3. Ajouter un test d'integration manuel ou automatise sur une instance Odoo de recette.
|
||||
|
||||
Reference in New Issue
Block a user