Sha256: 4ad2ae7f8c0aceead34a1ca9a4af94824815dcace1f5786837e2f1447f70008f

Contents?: true

Size: 1.74 KB

Versions: 8

Compression:

Stored size: 1.74 KB

Contents

require "allscripts_unity_client/utilities"
require "allscripts_unity_client/timezone"
require "allscripts_unity_client/unity_request"
require "allscripts_unity_client/json_unity_request"
require "allscripts_unity_client/unity_response"
require "allscripts_unity_client/json_unity_response"
require "allscripts_unity_client/client"
require "allscripts_unity_client/client_driver"
require "allscripts_unity_client/soap_client_driver"
require "allscripts_unity_client/json_client_driver"

module AllscriptsUnityClient
  class APIError < RuntimeError
  end

  def self.create(parameters = {})
    parameters[:mode] ||= :soap
    parameters[:log] = true unless parameters[:log] === false
    raise_if_parameters_invalid parameters

    case parameters[:mode]
    when :json
      client_driver = JSONClientDriver.new(parameters[:base_unity_url], parameters[:username], parameters[:password], parameters[:appname], parameters[:proxy], parameters[:timezone], parameters[:logger], parameters[:log])
    when :soap
      client_driver = SOAPClientDriver.new(parameters[:base_unity_url], parameters[:username], parameters[:password], parameters[:appname], parameters[:proxy], parameters[:timezone], parameters[:logger], parameters[:log])
    end

    client = Client.new(client_driver)
    client
  end

  private

  def self.raise_if_parameters_invalid(parameters)
    raise ArgumentError, ":mode must be :json or :soap" if ![:json, :soap].include?(parameters[:mode])
    raise ArgumentError, ":base_unity_url required" if parameters[:base_unity_url].nil?
    raise ArgumentError, ":username required" if parameters[:username].nil?
    raise ArgumentError, ":password required" if parameters[:password].nil?
    raise ArgumentError, ":appname required" if parameters[:appname].nil?
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
allscripts_unity_client-1.2.4 lib/allscripts_unity_client.rb
allscripts_unity_client-1.2.3 lib/allscripts_unity_client.rb
allscripts_unity_client-1.2.2 lib/allscripts_unity_client.rb
allscripts_unity_client-1.2.1 lib/allscripts_unity_client.rb
allscripts_unity_client-1.2.0 lib/allscripts_unity_client.rb
allscripts_unity_client-1.1.1 lib/allscripts_unity_client.rb
allscripts_unity_client-1.1.0 lib/allscripts_unity_client.rb
allscripts_unity_client-1.0.4 lib/allscripts_unity_client.rb