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.
16 17 18 19 20 |
# File 'lib/conduit-sdk.rb', line 16 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.
15 16 17 |
# File 'lib/conduit-sdk.rb', line 15 def access_key_name @access_key_name end |
#access_key_secret ⇒ Object
Returns the value of attribute access_key_secret.
15 16 17 |
# File 'lib/conduit-sdk.rb', line 15 def access_key_secret @access_key_secret end |
#host ⇒ Object
Returns the value of attribute host.
15 16 17 |
# File 'lib/conduit-sdk.rb', line 15 def host @host end |
Instance Method Details
#client_stats ⇒ Object
66 67 68 |
# File 'lib/conduit-sdk.rb', line 66 def client_stats() request "stats/clients", {} end |
#deploy(mailboxes, script, opts = {}) ⇒ Object
79 80 81 82 83 84 85 86 |
# File 'lib/conduit-sdk.rb', line 79 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
54 55 56 |
# File 'lib/conduit-sdk.rb', line 54 def deregister(mailbox_name) request "deregister", {mailbox: mailbox_name} end |
#get_message ⇒ Object
58 59 60 |
# File 'lib/conduit-sdk.rb', line 58 def () request "get", {mailbox: mailbox_name} end |
#list_deployments(opts = {}) ⇒ Object
70 71 72 73 74 75 76 77 |
# File 'lib/conduit-sdk.rb', line 70 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
50 51 52 |
# File 'lib/conduit-sdk.rb', line 50 def register(mailbox_name) request "register", {mailbox: mailbox_name} end |
#request(endpoint, request) ⇒ Object
31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
# File 'lib/conduit-sdk.rb', line 31 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 puts res.code end |
#sign!(request) ⇒ Object
22 23 24 25 26 27 28 29 |
# File 'lib/conduit-sdk.rb', line 22 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
62 63 64 |
# File 'lib/conduit-sdk.rb', line 62 def system_stats() request "stats", {} end |