class Desmoservice::Post

Public Class Methods

new() click to toggle source
# File lib/post.rb, line 6
def initialize
end
xml(desmoservice_conf, xml, http: nil, log_handler: nil) click to toggle source
# File lib/post.rb, line 9
def self.xml(desmoservice_conf, xml, http: nil, log_handler: nil)
  uri = desmoservice_conf.build_edition_uri
  if http.nil?
    response = Net::HTTP.post_form(uri, 'desmo' => desmoservice_conf.desmo_name, 'xml' => xml)
    response_body = response.body
  else
    request = Net::HTTP::Post.new(uri)
    request.set_form_data('desmo' => desmoservice_conf.desmo_name, 'xml' => xml)
    response =http.request(request)
    response_body = response.body
  end
  if not log_handler.nil?
    json = JSON.parse(response_body)
    if json.has_key?('error')
      error = json['error']
      message= "[[RequestParams]]\n      [" + error['key']
      if error.has_key?('parameter')
        message += ' / ' + error['parameter']
      end
      message += ']'
      if error.has_key?('value')
        message += ' ' + error['value']
      end
      log_handler.add_log_message(message)
    end
    if json.has_key?('log')
      log_handler.add_log_message(json['log'])
    end
  end
end