class CumulogicClient::BaseClient

Public Class Methods

new(api_url, username, password, use_ssl=nil, debug=false) click to toggle source
# File lib/cumulogic_client/base_client.rb, line 19
def initialize(api_url, username, password, use_ssl=nil, debug=false)
  @api_url  = api_url
  @username = username
  @password = password
  @use_ssl  = use_ssl
  @debug    = debug
  @validationparams = nil
end

Public Instance Methods

call(command, params=nil) click to toggle source
# File lib/cumulogic_client/base_client.rb, line 28
def call(command, params=nil)
  login() if not @validationparams
  callparams = Hash.new()
  callparams[:inputParams] = Array.new(1)
  callparams[:inputParams][0] = params if params
  callparams[:validationParams] = @validationparams
  request(command, callparams)
end
get_serviceplans(createdBy, serviceType) click to toggle source
# File lib/cumulogic_client/base_client.rb, line 98
def get_serviceplans(createdBy, serviceType)
  params = {
    'createdBy' => createdBy,
    'serviceType' => serviceType
  }
  call('serviceplan/getAllServicePlansByUserId', params)
end
login() click to toggle source
# File lib/cumulogic_client/base_client.rb, line 66
def login()
  credentials = Array.new(1)
  credentials[0] = {
    "userName" => @username,
    "password" => @password
  }
  login_params = Hash.new
  login_params["validationParams"] = Hash.new
  login_params["inputParams"] = credentials
  loginresponse = request("auth/login", login_params)
  @validationparams = {
    "userID" => loginresponse[0]["userID"],
    "userName" => loginresponse[0]["userName"],
    "userLoginToken" => loginresponse[0]["userLoginToken"]
  }

end
provisioning_completed(targetobject, timeout=nil) click to toggle source
# File lib/cumulogic_client/base_client.rb, line 84
def provisioning_completed(targetobject, timeout=nil)
  return Timeout::timeout(timeout) do
    while true do
      if not targetobject.isComplete()
        puts "returned false"
        sleep 10
      else 
        puts "returned true"
        return true
      end
    end
  end
end
request(command, params=nil) click to toggle source
# File lib/cumulogic_client/base_client.rb, line 37
def request(command, params=nil)
  url = "#{@api_url}#{command}"
  puts url if @debug
  puts params.to_json if @debug
  uri = URI.parse(url)
  http = Net::HTTP.new(uri.host, uri.port)
  http.use_ssl = @use_ssl
  http.verify_mode = OpenSSL::SSL::VERIFY_NONE
  request = Net::HTTP::Post.new(uri.request_uri)
  request.body = URI::encode(params.to_json) if params
  response = http.request(request)

  if !response.is_a?(Net::HTTPOK)
    if ["431","530","404"].include?(response.code)
      raise ArgumentError, response.message
    end
    raise RuntimeError, "Username and password not accepted" if ["401","403"].include?(response.code)
    raise RuntimeError, "Unknown error: code=#{response.code} message=#{response.message}"
  end

  puts response.body if @debug

  responsedata = JSON.parse(response.body)

  raise RuntimeError, "Errors: #{responsedata["errors"]}" if not responsedata["success"]
  return responsedata["response"]

end