Class: RubyCleverdome::Client

Inherits:
Object
  • Object
show all
Defined in:
lib/ruby-cleverdome.rb

Instance Method Summary collapse

Constructor Details

#initialize(sso_endpoint, widgets_wsdl) ⇒ Client

Returns a new instance of Client.



8
9
10
11
12
13
14
15
16
17
18
19
20
21
# File 'lib/ruby-cleverdome.rb', line 8

def initialize(sso_endpoint, widgets_wsdl)
  @sso_client = Savon.client(
      endpoint: sso_endpoint,
      namespace: 'urn:up-us:sso-service:service:v1',
    # proxy: 'http://127.0.0.1:8888',

    # log_level: :debug

      )
  @widgets_client = Savon.client(
    wsdl: widgets_wsdl,
    # proxy: 'http://127.0.0.1:8888',

    element_form_default: :unqualified,
    # log_level: :debug

  )
end

Instance Method Details

#auth(provider, uid, private_key_file, certificate_file) ⇒ Object



23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/ruby-cleverdome.rb', line 23

def auth(provider, uid, private_key_file, certificate_file)
  req = create_request(provider, uid)

      req = sign_request(req, private_key_file, certificate_file)

      resp = saml_call(req)
      resp_doc = Nokogiri::XML::Document.parse(resp)
  resp_doc.remove_namespaces!
      check_resp(resp_doc)

      session_id = resp_doc.xpath('//Assertion//AttributeStatement//Attribute[@Name="SessionID"]//AttributeValue')[0].content
      session_id
end

#widgets_call(method, locals) ⇒ Object



37
38
39
40
41
42
# File 'lib/ruby-cleverdome.rb', line 37

def widgets_call(method, locals)
  response = @widgets_client.call(
method,
:attributes => { 'xmlns' => 'http://tempuri.org/' }, 
message: { sessionID: 'EE282ABB-7BC3-42D3-BE98-9F8CE4217A12' } .merge(locals) )
end