Class: ConduitSdk::ApiClient
- Inherits:
-
Object
- Object
- ConduitSdk::ApiClient
- Defined in:
- lib/conduit-sdk.rb
Instance Attribute Summary collapse
-
#access_key_name ⇒ Object
Returns the value of attribute access_key_name.
-
#access_key_secret ⇒ Object
Returns the value of attribute access_key_secret.
-
#host ⇒ Object
Returns the value of attribute host.
Instance Method Summary collapse
- #client_stats ⇒ Object
- #deploy(mailboxes, script, opts = {}) ⇒ Object
- #deregister(mailbox_name) ⇒ Object
- #get_message ⇒ Object
-
#initialize(host, key_name, key_secret) ⇒ ApiClient
constructor
A new instance of ApiClient.
- #list_deployments(opts = {}) ⇒ Object
- #register(mailbox_name) ⇒ Object
- #request(endpoint, request) ⇒ Object
- #sign!(request) ⇒ Object
- #system_stats ⇒ Object
Constructor Details
#initialize(host, key_name, key_secret) ⇒ ApiClient
Returns a new instance of ApiClient.
15 16 17 18 19 |
# 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 |
Instance Attribute Details
#access_key_name ⇒ Object
Returns the value of attribute access_key_name.
14 15 16 |
# File 'lib/conduit-sdk.rb', line 14 def access_key_name @access_key_name end |
#access_key_secret ⇒ Object
Returns the value of attribute access_key_secret.
14 15 16 |
# File 'lib/conduit-sdk.rb', line 14 def access_key_secret @access_key_secret end |
#host ⇒ Object
Returns the value of attribute host.
14 15 16 |
# File 'lib/conduit-sdk.rb', line 14 def host @host end |
Instance Method Details
#client_stats ⇒ Object
64 65 66 |
# File 'lib/conduit-sdk.rb', line 64 def client_stats() request "stats/clients", {} end |
#deploy(mailboxes, script, opts = {}) ⇒ Object
77 78 79 80 81 82 83 84 |
# 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) ⇒ Object
52 53 54 |
# File 'lib/conduit-sdk.rb', line 52 def deregister(mailbox_name) request "deregister", {mailbox: mailbox_name} end |
#get_message ⇒ Object
56 57 58 |
# File 'lib/conduit-sdk.rb', line 56 def () request "get", {mailbox: mailbox_name} end |
#list_deployments(opts = {}) ⇒ Object
68 69 70 71 72 73 74 75 |
# 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) ⇒ Object
48 49 50 |
# File 'lib/conduit-sdk.rb', line 48 def register(mailbox_name) request "register", {mailbox: mailbox_name} end |
#request(endpoint, request) ⇒ Object
30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
# 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) ⇒ Object
21 22 23 24 25 26 27 28 |
# 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 ⇒ Object
60 61 62 |
# File 'lib/conduit-sdk.rb', line 60 def system_stats() request "stats", {} end |