outline_vpn_api 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a705549d6c1f842aeee03e7a6f6ded562020fc7eb946493e2eda44b0f307e95b
4
- data.tar.gz: 5ed19a71d4b574e2b4acd6e851a44d556aabc047479ef053cb3dfedb41b662a3
3
+ metadata.gz: 8c9711c3976ab3430f3a9c4a2d22987fab3ff9ae28fc30a88e86df35957d8a9b
4
+ data.tar.gz: bdfc5e017c2f264329f44eb87b2a8e4cc3e62586174b227a2297ba59fe4732c1
5
5
  SHA512:
6
- metadata.gz: bb864456a7a6293a966406268dd66e82e364f1f3f3cc3842a54b1463f108cb0eb3f449a547ad896e2824a3ac217ba620d7297ff543151e88709cccde60221c8f
7
- data.tar.gz: 495ee1dad45c93f6173e1a444af102526ae0a22056832bc98c5bc997067327bc745f50fea20606f31ee82985e5b74e4b088a4282ced952d3afc2e3c865713235
6
+ metadata.gz: 50af08ed6369f0b5280049af3cfc7ffb767f9d2f7d399657009dea3f79caba5716eba485097cb4e4cd2463113390cb607fc62fe175e641713d2ec36ed15f230e
7
+ data.tar.gz: e3698a273dff671a1bc32848339d74f5ae079525cacf3c3196aaa0b899d225012a749e912f3b9bd7c3adc0e52c511e63f6173fdf87e5904bb4d321c8738cc273
data/.ruby-version ADDED
@@ -0,0 +1 @@
1
+ 3.2.2
data/README.md CHANGED
@@ -31,12 +31,12 @@ Fetches a list of all keys:
31
31
  keys = client.keys_list
32
32
  ```
33
33
 
34
- #### `transfered_data_by_id`
34
+ #### `transferred_data_by_id`
35
35
 
36
36
  Fetches the transferred data metrics:
37
37
 
38
38
  ```ruby
39
- data = client.transfered_data_by_id
39
+ data = client.transferred_data_by_id
40
40
  ```
41
41
 
42
42
  #### `create_key`
@@ -6,51 +6,66 @@ require "json"
6
6
  module OutlineVpnApi
7
7
  class Client
8
8
  include HTTParty
9
- base_uri ""
10
- default_options.update(verify: false)
11
9
  headers "Content-Type" => "application/json"
10
+ default_options.update(verify: false)
12
11
 
13
12
  def initialize(api_url)
14
13
  self.class.base_uri(api_url)
15
14
  end
16
15
 
17
- attr_reader :api_url
18
-
19
16
  def keys_list
20
- parse_response(self.class.get("/access-keys"))["accessKeys"]
17
+ get("/access-keys")["accessKeys"]
21
18
  end
22
19
 
23
- def transfered_data_by_id
24
- parse_response(self.class.get("/metrics/transfer"))
20
+ def transferred_data_by_id
21
+ get("/metrics/transfer")
25
22
  end
26
23
 
27
24
  def create_key
28
- parse_response(self.class.post("/access-keys"))
25
+ post("/access-keys")
29
26
  end
30
27
 
31
28
  def set_limit(key_id, limit)
32
- response = self.class.put("/access-keys/#{key_id}/data-limit", body: { limit: { bytes: limit } }.to_json)
33
- handle_response(response, "Limit for key_id:#{key_id} is #{limit} bytes")
29
+ body = { limit: { bytes: limit } }.to_json
30
+ put("/access-keys/#{key_id}/data-limit", body, "Limit for key_id: #{key_id} is #{limit} bytes")
34
31
  end
35
32
 
36
33
  def rename_key(key_id, name)
37
- response = self.class.put("/access-keys/#{key_id}/name", body: { name: }.to_json)
38
- handle_response(response, "key_id:#{key_id}, renamed to #{name}")
34
+ body = { name: }.to_json
35
+ put("/access-keys/#{key_id}/name", body, "key_id: #{key_id}, renamed to #{name}")
39
36
  end
40
37
 
41
38
  def delete_key(key_id)
42
39
  response = self.class.delete("/access-keys/#{key_id}")
43
- handle_response(response, "key_id:#{key_id}, deleted")
40
+ handle_response(response, "key_id: #{key_id}, deleted")
44
41
  end
45
42
 
46
43
  private
47
44
 
45
+ def get(endpoint)
46
+ parse_response(self.class.get(endpoint))
47
+ end
48
+
49
+ def post(endpoint, body = {})
50
+ parse_response(self.class.post(endpoint, body:))
51
+ end
52
+
53
+ def put(endpoint, body, success_message)
54
+ response = self.class.put(endpoint, body:)
55
+ handle_response(response, success_message)
56
+ end
57
+
48
58
  def parse_response(response)
49
59
  JSON.parse(response.body)
50
60
  end
51
61
 
52
62
  def handle_response(response, success_message)
53
- response.code.to_i == 204 ? puts(success_message) : parse_response(response)
63
+ if response.code.to_i == 204
64
+ puts(success_message)
65
+ nil
66
+ else
67
+ parse_response(response)
68
+ end
54
69
  end
55
70
  end
56
71
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module OutlineVpnApi
4
- VERSION = "0.1.0"
4
+ VERSION = "0.2.0"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: outline_vpn_api
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Pavel Vlasikhin
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-09-10 00:00:00.000000000 Z
11
+ date: 2023-10-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: httparty
@@ -33,6 +33,7 @@ extra_rdoc_files: []
33
33
  files:
34
34
  - ".rspec"
35
35
  - ".rubocop.yml"
36
+ - ".ruby-version"
36
37
  - CODE_OF_CONDUCT.md
37
38
  - LICENSE
38
39
  - README.md
@@ -63,7 +64,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
63
64
  - !ruby/object:Gem::Version
64
65
  version: '0'
65
66
  requirements: []
66
- rubygems_version: 3.4.14
67
+ rubygems_version: 3.4.10
67
68
  signing_key:
68
69
  specification_version: 4
69
70
  summary: Ruby API wrapper for Outline VPN Server