Skip to content

Commit 1fb53c7

Browse files
committed
search methot
1 parent 471bcff commit 1fb53c7

File tree

3 files changed

+44
-26
lines changed

3 files changed

+44
-26
lines changed

odooapiclient/auth.py

Lines changed: 0 additions & 24 deletions
This file was deleted.

odooapiclient/client.py

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
from . import auth
1+
from . import service_tools
22

33

44
class Client(object):
@@ -20,6 +20,16 @@ def __init__(self, protocol='http', host='localhost', port=8069, dbname=None, ss
2020

2121
def authenticate(self, login, pwd):
2222
self._login, self._password = login, pwd
23-
service = auth.Connection(self._url)
23+
service = auth.Connection(self._url, 'common')
2424
self._uid = service.authenticate(self._db, login, pwd, {})
2525
return self._uid
26+
27+
def search(self, model, domain=False, context=None, **kwargs):
28+
if not context:
29+
context = {}
30+
if not kwargs:
31+
kwargs ={}
32+
kwargs.update({'context': context})
33+
service = auth.Connection(self._url, 'object')
34+
response = service.models(self._db, self._uid, self._password, model, 'search', domain or [], **kwargs)
35+
return response

odooapiclient/service_tools.py

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
# -*- coding: utf-8 -*-
2+
import logging
3+
import xmlrpc.client
4+
5+
6+
class Connection(object):
7+
8+
def __init__(self, url, endpoint):
9+
self._url = url
10+
self._endpoint = endpoint
11+
self._common = xmlrpc.client.ServerProxy('{}/xmlrpc/2/{}'.format(self._url, self._endpoint))
12+
13+
def trasmit(self, method, *args, **kwargs):
14+
try:
15+
response = getattr(self._common, method)(*args)
16+
return response
17+
except xmlrpc.client.ProtocolError as err:
18+
raise err
19+
20+
def authenticate(self, db, user, password, session={}):
21+
try:
22+
response = self.trasmit('authenticate', db, user, password, session)
23+
return response
24+
except Exception as err:
25+
raise err
26+
27+
def models(self, db, uid, password, model, method, *args, **kwrags):
28+
try:
29+
response = self.trasmit('execute_kw', db, uid, password, model, method, args, kwrags)
30+
return response
31+
except Exception as err:
32+
raise err

0 commit comments

Comments
 (0)