class OdooClient::Client
Public Class Methods
new(url, database, username, password)
click to toggle source
# File lib/odoo_client/client.rb, line 9 def initialize(url, database, username, password) @url = url @common = XMLRPC::Client.new2("#{@url}/xmlrpc/2/common") @db = database @password = password @common.call('version') @uid = @common.call('authenticate', @db, username, @password, {}) raise AuthenticationError.new if @uid == false end
Public Instance Methods
count_records(model_name, filters=[])
click to toggle source
# File lib/odoo_client/client.rb, line 29 def count_records(model_name, filters=[]) models.execute_kw(@db, @uid, @password, model_name, 'search_count', [filters], {}) end
create_record(model_name, params)
click to toggle source
# File lib/odoo_client/client.rb, line 44 def create_record(model_name, params) models.execute_kw(@db, @uid, @password, model_name, 'create', [params]) end
delete_records(model_name, params)
click to toggle source
# File lib/odoo_client/client.rb, line 56 def delete_records(model_name, params) models.execute_kw(@db, @uid, @password, model_name, 'unlink', [params]) end
find(model_name, id, select_fields=[])
click to toggle source
# File lib/odoo_client/client.rb, line 64 def find(model_name, id, select_fields=[]) result = read_records(model_name, [["id", "=", id]], select_fields) result[0] unless result.empty? end
list_records(model_name, filters=[])
click to toggle source
# File lib/odoo_client/client.rb, line 33 def list_records(model_name, filters=[]) models.execute_kw(@db, @uid, @password, model_name, 'search', [filters], {}) end
me()
click to toggle source
# File lib/odoo_client/client.rb, line 25 def me @uid end
model_attributes(model_name, info=['string', 'help', 'type'])
click to toggle source
# File lib/odoo_client/client.rb, line 60 def model_attributes(model_name, info=['string', 'help', 'type']) models.execute_kw(@db, @uid, @password, model_name, 'fields_get', [], {'attributes': info}) end
read_records(model_name, filters=[], select_fields=[], offset=nil, limit=nil)
click to toggle source
# File lib/odoo_client/client.rb, line 37 def read_records(model_name, filters=[], select_fields=[], offset=nil, limit=nil) optional_params = {fields: select_fields} optional_params[:offset] = offset unless offset.nil? optional_params[:limit] = limit unless limit.nil? models.execute_kw(@db, @uid, @password, model_name, 'search_read', [filters], optional_params) end
update_record(model_name, id, params)
click to toggle source
# File lib/odoo_client/client.rb, line 48 def update_record(model_name, id, params) update_records(model_name, [id], params) end
update_records(model_name, record_ids, params)
click to toggle source
# File lib/odoo_client/client.rb, line 52 def update_records(model_name, record_ids, params) models.execute_kw(@db, @uid, @password, model_name, 'write', [record_ids, params]) end
version()
click to toggle source
# File lib/odoo_client/client.rb, line 21 def version @common.call('version')["server_version"] end
Private Instance Methods
models()
click to toggle source
# File lib/odoo_client/client.rb, line 70 def models @models ||= XMLRPC::Client.new2("#{@url}/xmlrpc/2/object").proxy end