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

#auth_headersObject



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

def auth_headers
  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



62
63
64
# File 'lib/neeto_deploy/cli/session.rb', line 62

def console_executable_name
  CONSOLE_EXECUTABLE[os]
end

#json_auth_headersObject



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

def json_auth_headers
  auth_headers.merge("Content-Type" => "application/json")
end

#osObject



48
49
50
51
52
53
54
55
56
57
58
59
60
# File 'lib/neeto_deploy/cli/session.rb', line 48

def os
  @os ||= (
    host_os = RbConfig::CONFIG["host_os"]
    case host_os
    when /darwin|mac os/
      :mac
    when /linux/
      :linux
    else
      raise Error, "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, { body: body.to_json, headers: json_auth_headers, 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, { query: body, headers: auth_headers, 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, { body: body.to_json, headers: json_auth_headers, 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, { body: body.to_json, headers: json_auth_headers, format: :json })
end