83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
|
# File 'lib/ooor/services.rb', line 83
def object_service(service, obj, method, *args)
unless @session.config[:user_id]
@session.common.login(@session.config[:database], @session.config[:username], @session.config[:password])
end
args = inject_session_context(service, method, *args)
uid = @session.config[:user_id]
db = @session.config[:database]
@session.logger.debug "OOOR object service: rpc_method: #{service}, db: #{db}, uid: #{uid}, pass: #, obj: #{obj}, method: #{method}, *args: #{args.inspect}"
if @session.config[:force_xml_rpc]
pass = @session.config[:password]
send(service, db, uid, pass, obj, method, *args)
else
unless @session.web_session[:session_id]
@session.common.login(@session.config[:database], @session.config[:username], @session.config[:password])
end
json_conn = @session.get_client(:json, "#{@session.base_jsonrpc2_url}")
json_conn.oe_service(@session.web_session, service, obj, method, *args)
end
rescue InvalidSessionError
@session.config[:force_xml_rpc] = true retry
rescue SessionExpiredError
@session.logger.debug "session for uid: #{uid} has expired, trying to login again"
@session.common.login(@session.config[:database], @session.config[:username], @session.config[:password])
retry
end
|