Sha256: 36fee8bf2dedf4eaad72dff0e4fd8aea8b105efbcc56e8eacf6d4820728f0ec7

Contents?: true

Size: 1.31 KB

Versions: 1

Compression:

Stored size: 1.31 KB

Contents

class SmartsApi::ConnectMessage < SmartsApi::Message

    def send
      logger.info "Connecting to #{uri}" if logger.respond_to?(:info)
      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

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

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

    def uri
      "#{base_uri}connect"
    end

end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
smarts_api-0.0.1 lib/smarts_api/message/connect_message.rb