# Test client for VitSec Webservice - 2012/01/13 - mathias chouet
# Requires savon: http://savonrb.com/

require 'rubygems'
require 'savon'
require 'pp'

# define your parameters here
url = "http://bioweb.supagro.inra.fr/vitphe/public/ws/?wsdl"
proxyurl = "http://proxyurl:port"
mylogin = "myuse.rname"
mypassword = "mypassword"

Savon.configure do |config|
    config.log = false            # disable logging
    config.log_level = :info      # changing the log level
end

# creating client
client = Savon::Client.new do | wsdl, http |
    wsdl.document = url
#   http.proxy = proxyurl
end

# WSSE authentication
client.wsse.credentials mylogin, mypassword

# test method
response = client.request :getHello do
    soap.body = { :prenom => "Ruby client" }
end
puts response.to_hash[:get_hello_response][:return]
#puts response.to_xml

# get experiments list
response = client.request :getExperiments
pp response.to_hash[:get_experiments_response][:return]

# get measures by experiment
response = client.request :getOfflineMeasuresByExperiment do
		soap.body = { :experiment => "2011-LEPSE-04" }
end
pp response.to_hash[:get_offline_measures_by_experiment_response][:return]

# add online measure
response = client.request :addOnlineMeasure do
		soap.body do |xml|
			xml.date('2012-04-28 15:48:25')
			xml.value('85')
			xml.variable('yield')
			xml.object('EDPhenoArch')
			xml.context('cm-01')
			xml.experiment('2011-LEPSE-04')
			xml.annotations('<data>myAnnotation</data>')
		end
end
pp response.to_hash[:add_online_measure_response][:return]
