Ruby client - OpenKM 5.1

From OpenKM Documentation
(Redirected from Ruby client)
Jump to: navigation, search

Create document and folder

# Ruby 1.9.3p0
# savon 0.9.7
 
require 'savon'
require 'net/smtp'
require 'base64'
 
# Disable savon logging
Savon.configure do |config|
	config.log = false            
end
 
HTTPI.log = false
 
# Authentication 
sAuth = Savon::Client.new do |wsdl, http|
	wsdl.document = "http://localhost:8080/OpenKM/OKMAuth?wsdl"
	http.proxy = "http://localhost:8080"
end
 
res = sAuth.request :end,:login, body: { :user => 'okmAdmin', :password => 'admin' }
token = res.to_hash[:login_response][:return]
 
sAuth.request :end,:logout, body: { :token => token }
 
# Create/Get/Delete document
sDoc = Savon::Client.new do |wsdl, http|
	wsdl.document = "http://localhost:8080/OpenKM/OKMDocument?wsdl"
	http.proxy = "http://localhost:8080"
end
 
someDoc = "/var/tmp/doc.pdf"
docPath = "/okm:root/doc.pdf"
content = Base64.encode64( File.read( someDoc))
 
res = sDoc.request :end, :createSimple, body: { :token => token, :docPath => docPath, :content => "#{content}" }
 
res = sDoc.request :end, :getContent, body: { :token => token, :docPath => docPath, :checkout => "False"}
content = res.to_hash[:get_content_response][:return]
content_decoded = Base64.decode64( content)
File.open( "/var/tmp/newfile.pdf", File::CREAT|File::TRUNC|File::RDWR, 0644) do |f|
	f.write( content_decoded)
end
 
res = sDoc.request :end, :delete, body: { :token => token, :docPath => docPath }
 
# Create Folder
sFolder = Savon::Client.new do |wsdl, http|
	wsdl.document = "http://localhost:8080/OpenKM/OKMFolder?wsdl"
	http.proxy = "http://localhost:8080"
end
 
docPath = "/okm:root/doc.pdf"
 
res = sFolder.request :end, :createSimple, body: { :token => token, :fldPath => docPath }