Class: OutlineVpnApi::Client
- Inherits:
-
Object
- Object
- OutlineVpnApi::Client
- Defined in:
- lib/outline_vpn_api/client.rb
Constant Summary collapse
- DEFAULT_TIMEOUT =
30- CONNECTION_ERRORS =
[ SocketError, SystemCallError, Net::OpenTimeout, Net::ReadTimeout, HTTParty::RedirectionTooDeep ].freeze
Instance Method Summary collapse
- #create_key ⇒ Object
- #delete_key(key_id) ⇒ Object
-
#initialize(api_url, cert_sha256: nil, timeout: DEFAULT_TIMEOUT) ⇒ Client
constructor
A new instance of Client.
- #keys_list ⇒ Object
- #rename_key(key_id, name) ⇒ Object
- #set_limit(key_id, limit) ⇒ Object
- #transferred_data_by_id ⇒ Object
Constructor Details
#initialize(api_url, cert_sha256: nil, timeout: DEFAULT_TIMEOUT) ⇒ Client
Returns a new instance of Client.
22 23 24 25 26 27 28 |
# File 'lib/outline_vpn_api/client.rb', line 22 def initialize(api_url, cert_sha256: nil, timeout: DEFAULT_TIMEOUT) @base_uri = api_url.to_s.chomp("/") @options = { headers: { "Content-Type" => "application/json" }, timeout: timeout }.merge((cert_sha256)) end |
Instance Method Details
#create_key ⇒ Object
38 39 40 |
# File 'lib/outline_vpn_api/client.rb', line 38 def create_key request(:post, "/access-keys") end |
#delete_key(key_id) ⇒ Object
50 51 52 |
# File 'lib/outline_vpn_api/client.rb', line 50 def delete_key(key_id) request(:delete, "/access-keys/#{key_id}") end |
#keys_list ⇒ Object
30 31 32 |
# File 'lib/outline_vpn_api/client.rb', line 30 def keys_list request(:get, "/access-keys")["accessKeys"] end |
#rename_key(key_id, name) ⇒ Object
46 47 48 |
# File 'lib/outline_vpn_api/client.rb', line 46 def rename_key(key_id, name) request(:put, "/access-keys/#{key_id}/name", body: { name: }) end |
#set_limit(key_id, limit) ⇒ Object
42 43 44 |
# File 'lib/outline_vpn_api/client.rb', line 42 def set_limit(key_id, limit) request(:put, "/access-keys/#{key_id}/data-limit", body: { limit: { bytes: limit } }) end |
#transferred_data_by_id ⇒ Object
34 35 36 |
# File 'lib/outline_vpn_api/client.rb', line 34 def transferred_data_by_id request(:get, "/metrics/transfer") end |