Repository navigation
Expand file tree
/
Copy pathclient.rb
More file actions
52 lines (50 loc) · 1.82 KB
/
Copy pathclient.rb
File metadata and controls
52 lines (50 loc) · 1.82 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
# frozen_string_literal: true
module Trophy
module Admin
module Environments
class Client
# @param client [Trophy::Internal::Http::RawClient]
# @param base_url [String, nil]
# @param environment [Hash[Symbol, String], nil]
#
# @return [void]
def initialize(client:, base_url: nil, environment: nil)
@client = client
@base_url = base_url
@environment = environment
end
# List active environments.
#
# @param request_options [Hash]
# @param _params [Hash]
# @option request_options [String] :base_url
# @option request_options [Hash{String => Object}] :additional_headers
# @option request_options [Hash{String => Object}] :additional_query_parameters
# @option request_options [Hash{String => Object}] :additional_body_parameters
# @option request_options [Integer] :timeout_in_seconds
#
# @return [Array[Trophy::Types::AdminEnvironment]]
def list(request_options: {}, **_params)
request = Trophy::Internal::JSON::Request.new(
base_url: request_options[:base_url] || @base_url || @environment&.dig(:admin),
method: "GET",
path: "environments",
request_options: request_options
)
begin
response = @client.send(request)
rescue Net::HTTPRequestTimeout
raise Trophy::Errors::TimeoutError
end
code = response.code.to_i
if code.between?(200, 299)
Trophy::Types::ListEnvironmentsResponse.load(response.body)
else
error_class = Trophy::Errors::ResponseError.subclass_for_code(code)
raise error_class.new(response.body, code: code)
end
end
end
end
end
end