Class: SmartsApi::DisconnectMessage

Inherits:
Message
  • Object
show all
Defined in:
lib/smarts_api/message/disconnect_message.rb

Instance Method Summary collapse

Methods inherited from Message

#encode_hash, #hex_string_to_ascii, #log, #make_form, #method, #sign_request, #timestamp

Instance Method Details

#request_params(session) ⇒ Object



22
23
24
25
26
27
28
29
30
31
32
# File 'lib/smarts_api/message/disconnect_message.rb', line 22

def request_params(session)
  params = {
      :appId => SmartsApi::Configuration.app_id,
      :reqTime => timestamp,
      :session => session
  }
  signature = {
      :sign => sign_request(params)
  }
  return params.merge(signature)
end

#send(session) ⇒ Object

Raises:



4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# File 'lib/smarts_api/message/disconnect_message.rb', line 4

def send(session)
  body = make_form(request_params(session))
  log "Disconnecting"
  response = Typhoeus::Request.post(uri,
                                    :method  => method,
                                    :headers => {:Accept => "text/json"},
                                    :body    => body
  )
  raise SmartsApi::Error, "Service connection failed.  Recieved empty reply" if response.nil? || response.body.blank?
  reply = JSON.parse(response.body)

  raise SmartsApi::Error, "Connection failed.  Received malformed response." unless reply["Header"] && reply["Header"]["SessionId"]

  session = reply["Header"]["SessionId"]
  raise SmartsApi::Error, "Connection failed.  Did not receive session ID" if session == "00000000-0000-0000-0000-000000000000"
  return session
end

#uriObject



34
35
36
# File 'lib/smarts_api/message/disconnect_message.rb', line 34

def uri
  "#{super}disconnect"
end