Module: NeetoDeploy::CLI::Session

Defined Under Namespace

Classes: Error

Constant Summary collapse

CONSOLE_EXECUTABLE =
{
  mac: "console-linux-arm64",
  linux: "console-linux-amd64"
}.freeze

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.require_app_optionObject



17
18
19
# File 'lib/neeto_deploy/cli/session.rb', line 17

def self.require_app_option
  option :app, type: :string, aliases: "-a", required: true, desc: "App slug"
end

Instance Method Details

#common_bodyObject



37
38
39
40
41
42
# File 'lib/neeto_deploy/cli/session.rb', line 37

def common_body
  session_info = JSON.parse(File.read(CLI_SESSION_STORE_FILE_PATH))
  { session_token: session_info["session_token"] }
rescue
  raise Error.new("Unable to retrieve session info. Try logging in again.")
end

#console_executable_nameObject



68
69
70
# File 'lib/neeto_deploy/cli/session.rb', line 68

def console_executable_name
  CONSOLE_EXECUTABLE[os]
end

#headersObject



50
51
52
# File 'lib/neeto_deploy/cli/session.rb', line 50

def headers
  { "Session-Token" => session_token }
end

#osObject



54
55
56
57
58
59
60
61
62
63
64
65
66
# File 'lib/neeto_deploy/cli/session.rb', line 54

def os
  @os ||= (
    host_os = RbConfig::CONFIG["host_os"]
    case host_os
    when /darwin|mac os/
      :mac
    when /linux/
      :linux
    else
      raise Error::WebDriverError, "unsupported os: #{host_os.inspect}"
    end
  )
end

#send_delete_request(url, body) ⇒ Object



33
34
35
# File 'lib/neeto_deploy/cli/session.rb', line 33

def send_delete_request(url, body)
  HTTParty.delete(url, headers:, body:, format: :json)
end

#send_get_request(url, body) ⇒ Object



21
22
23
# File 'lib/neeto_deploy/cli/session.rb', line 21

def send_get_request(url, body)
  HTTParty.get(url, headers:, body:, format: :json)
end

#send_patch_request(url, body) ⇒ Object



29
30
31
# File 'lib/neeto_deploy/cli/session.rb', line 29

def send_patch_request(url, body)
  HTTParty.patch(url, headers:, body:, format: :json)
end

#send_post_request(url, body) ⇒ Object



25
26
27
# File 'lib/neeto_deploy/cli/session.rb', line 25

def send_post_request(url, body)
  HTTParty.post(url, headers:, body:, format: :json)
end

#session_tokenObject



44
45
46
47
48
# File 'lib/neeto_deploy/cli/session.rb', line 44

def session_token
  JSON.parse(File.read(CLI_SESSION_STORE_FILE_PATH))["session_token"]
rescue
  raise Error.new("Unable to retrieve session token. Try logging in again.")
end