class ConduitSdk::ApiClient
Attributes
access_key_name[RW]
access_key_secret[RW]
host[RW]
Public Class Methods
new(host, key_name, key_secret)
click to toggle source
# File lib/conduit-sdk.rb, line 15 def initialize(host, key_name, key_secret) @host = host @access_key_name = key_name @access_key_secret = key_secret end
Public Instance Methods
client_stats()
click to toggle source
# File lib/conduit-sdk.rb, line 64 def client_stats() request "stats/clients", {} end
deploy(mailboxes, script, opts = {})
click to toggle source
# File lib/conduit-sdk.rb, line 77 def deploy(mailboxes, script, opts = {}) request = {body: script} request[:mailboxes] = mailboxes if mailboxes.is_a Array request[:pattern] = mailboxes if mailboxes.is_a String request[:deploymentName] = opts[:name] if opts[:name] request[:asset] = opts[:asset] if opts[:asset] request "put", request end
deregister(mailbox_name)
click to toggle source
# File lib/conduit-sdk.rb, line 52 def deregister(mailbox_name) request "deregister", {mailbox: mailbox_name} end
get_message()
click to toggle source
# File lib/conduit-sdk.rb, line 56 def get_message() request "get", {mailbox: mailbox_name} end
list_deployments(opts = {})
click to toggle source
# File lib/conduit-sdk.rb, line 68 def list_deployments(opts = {}) request = {} request[:deploymentId] = opts[:id] || "" request[:nameSearch] = opts[:name] || "" request[:keySearch] = opts[:keyName] || "" request[:count] = opts[:count] || 10 request "deploy/list", request end
register(mailbox_name)
click to toggle source
# File lib/conduit-sdk.rb, line 48 def register(mailbox_name) request "register", {mailbox: mailbox_name} end
request(endpoint, request)
click to toggle source
# File lib/conduit-sdk.rb, line 30 def request(endpoint, request) uri = URI("http://#{@host}/#{endpoint}") req = Net::HTTP::Post.new(uri) req.content_type = 'application/json' sign! request req.body = JSON.generate(request) res = Net::HTTP.new(uri.hostname, uri.port).start {|h| h.request(req) } if res.code == "200" return JSON.parse(res.body) end if res.code == "404" raise ApiError.new, "Endpoint not found" end if res.code == "400" raise ApiError.new, JSON.parse(res.body)["error"] end end
sign!(request)
click to toggle source
# File lib/conduit-sdk.rb, line 21 def sign!(request) request[:requestTime] = Time.new.strftime("%Y-%m-%dT%H:%M:%S%:z") request[:token] = SecureRandom.uuid data = request[:token] + request[:requestTime] hmac = OpenSSL::HMAC.digest("sha256", @access_key_secret, data) request[:keyName] = @access_key_name request[:signature] = Base64.encode64(hmac) end
system_stats()
click to toggle source
# File lib/conduit-sdk.rb, line 60 def system_stats() request "stats", {} end