Class: SmartsApi::ConnectMessage

Inherits:
Message
  • Object
show all
Defined in:
lib/smarts_api/message/connect_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_documentObject



21
22
23
# File 'lib/smarts_api/message/connect_message.rb', line 21

def request_document
  {:OperationId =>1 , :Header => {:DeploymentId => SmartsApi::Configuration.project_id}}.to_json
end

#request_paramsObject



25
26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/smarts_api/message/connect_message.rb', line 25

def request_params
  params = {
      :appId => SmartsApi::Configuration.app_id,
      :pwd => SmartsApi::Configuration.pwd,
      :reqData => request_document,
      :reqTime => self.timestamp,
      :userId =>  SmartsApi::Configuration.user_id,
      :workspaceId => SmartsApi::Configuration.workspace_id
  }
  signature = {
      :sign => sign_request(params)
  }
  return params.merge(signature)
end

#sendObject

Raises:



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

def send
  log "Connecting to #{uri}"
  response = Typhoeus::Request.post(uri,
    :method => method,
    :headers => {:Accept => "text/json"},
    :body => make_form(request_params)
  )
  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



40
41
42
# File 'lib/smarts_api/message/connect_message.rb', line 40

def uri
  "#{super}connect"
end