class SesameOs2::Client
Constants
- API_ENDPOINT
- COMMAND
- HISTORY_TYPES
Attributes
api_key[R]
name[R]
ssm[R]
Public Class Methods
new(api_key: ENV['SESAME_API_KEY'], name:, ssm: ENV['SESAME_SSM'])
click to toggle source
# File lib/sesame_os2/client.rb, line 33 def initialize(api_key: ENV['SESAME_API_KEY'], name:, ssm: ENV['SESAME_SSM']) @api_key = api_key @name = name @ssm = Ssm.new(ssm: ssm) end
Public Instance Methods
command(command:)
click to toggle source
# File lib/sesame_os2/client.rb, line 57 def command(command:) res = client.post("#{uuid}/cmd") do |req| req.body = { cmd: command, history: encoded64_name, sign: sign }.to_json end { status: res.status } end
histories(page: 0, lg: 50)
click to toggle source
# File lib/sesame_os2/client.rb, line 44 def histories(page: 0, lg: 50) res = client.get("#{uuid}/history", { page: page, lg: lg }) parsed_body = JSON.parse(res.body) return parsed_body if res.status != 200 parsed_body.map do |body| body['cast_type'] = HISTORY_TYPES[body['type']] body['name'] = Base64.decode64(body['historyTag']) if body['historyTag'] body end end
status()
click to toggle source
# File lib/sesame_os2/client.rb, line 39 def status res = client.get(uuid) JSON.parse(res.body) end
Private Instance Methods
client()
click to toggle source
# File lib/sesame_os2/client.rb, line 75 def client @client = ::Faraday.new(url: API_ENDPOINT, headers: { 'x-api-key' => api_key }) end
encoded64_name()
click to toggle source
# File lib/sesame_os2/client.rb, line 87 def encoded64_name Base64.encode64(name) end
secret_key()
click to toggle source
# File lib/sesame_os2/client.rb, line 83 def secret_key ssm.secret_key end
sign()
click to toggle source
# File lib/sesame_os2/client.rb, line 91 def sign Sign.create(secret_key: secret_key) end
uuid()
click to toggle source
# File lib/sesame_os2/client.rb, line 79 def uuid ssm.uuid end