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 +4 -4
- data/.ruby-version +1 -0
- data/README.md +2 -2
- data/lib/outline_vpn_api/client.rb +29 -14
- data/lib/outline_vpn_api/version.rb +1 -1
- metadata +4 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8c9711c3976ab3430f3a9c4a2d22987fab3ff9ae28fc30a88e86df35957d8a9b
|
4
|
+
data.tar.gz: bdfc5e017c2f264329f44eb87b2a8e4cc3e62586174b227a2297ba59fe4732c1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
|
-
#### `
|
34
|
+
#### `transferred_data_by_id`
|
35
35
|
|
36
36
|
Fetches the transferred data metrics:
|
37
37
|
|
38
38
|
```ruby
|
39
|
-
data = client.
|
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
|
-
|
17
|
+
get("/access-keys")["accessKeys"]
|
21
18
|
end
|
22
19
|
|
23
|
-
def
|
24
|
-
|
20
|
+
def transferred_data_by_id
|
21
|
+
get("/metrics/transfer")
|
25
22
|
end
|
26
23
|
|
27
24
|
def create_key
|
28
|
-
|
25
|
+
post("/access-keys")
|
29
26
|
end
|
30
27
|
|
31
28
|
def set_limit(key_id, limit)
|
32
|
-
|
33
|
-
|
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
|
-
|
38
|
-
|
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
|
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
|
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
|
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.
|
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-
|
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.
|
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
|