outline_vpn_api 0.1.0 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
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