tryterra_api 0.1.2 → 1.0.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/lib/try_terra/resource.rb +22 -3
- data/lib/try_terra/version.rb +1 -1
- data/lib/try_terra/web_hook.rb +18 -0
- data/lib/try_terra.rb +2 -0
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 21b48ec52f0372c72febb4c26fac18eebb78e75b2f41eded99f03698f149aaab
|
4
|
+
data.tar.gz: ec6aa4e101944b2164c0ecf9ccb99a08d355ecf99f1c50686e0c51108c9fcd49
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 56739e75e1b5a80872fdd14efc21b68a788bb852e38371fbe974b22d15b955e48c9c268f02129f1be977635d423fdfaf8351e98163bb5e9d7e04c82824568faa
|
7
|
+
data.tar.gz: 1475cb78d157ebbd28c79232a5c9d9c83dd6b16b5d36f5a612d83f4d76224451f3284723e9679c81c44b01519bebcbae86b14a704a1e83b4784ce5e35b923744
|
data/lib/try_terra/resource.rb
CHANGED
@@ -9,17 +9,36 @@ module TryTerra
|
|
9
9
|
private
|
10
10
|
|
11
11
|
def get_request(url, params)
|
12
|
-
client.connection.get(url, params)
|
12
|
+
handle_response client.connection.get(url, params)
|
13
13
|
end
|
14
14
|
|
15
15
|
def post_request(url, params)
|
16
|
-
client.connection.post(url) do |req|
|
16
|
+
response = client.connection.post(url) do |req|
|
17
17
|
req.params = params
|
18
18
|
end
|
19
|
+
handle_response(response)
|
19
20
|
end
|
20
21
|
|
21
22
|
def delete_request(url, params)
|
22
|
-
client.connection.delete(url, params)
|
23
|
+
handle_response client.connection.delete(url, params)
|
24
|
+
end
|
25
|
+
|
26
|
+
def handle_response(response)
|
27
|
+
case response.status
|
28
|
+
when 400
|
29
|
+
raise Error, response.body["message"]
|
30
|
+
when 401
|
31
|
+
raise Error, response.body["message"]
|
32
|
+
when 402
|
33
|
+
raise Error, response.body["message"]
|
34
|
+
when 403
|
35
|
+
raise Error, "Forbidden"
|
36
|
+
when 404
|
37
|
+
raise Error, response.body["message"]
|
38
|
+
when 500
|
39
|
+
raise Error, "Possible Internal Server Error"
|
40
|
+
end
|
41
|
+
response
|
23
42
|
end
|
24
43
|
end
|
25
44
|
end
|
data/lib/try_terra/version.rb
CHANGED
@@ -0,0 +1,18 @@
|
|
1
|
+
module TryTerra
|
2
|
+
class WebHook
|
3
|
+
attr_reader :key, :signature_header, :data
|
4
|
+
|
5
|
+
def initialize(key:, signature_header:, data:)
|
6
|
+
@key = key
|
7
|
+
@signature_header = signature_header
|
8
|
+
@data = data
|
9
|
+
end
|
10
|
+
|
11
|
+
def valid?
|
12
|
+
t, header_signature = @signature_header.split(",").map { |kv| kv.split("=")[1] }
|
13
|
+
timestamped_payload = "#{t}.#{@data}"
|
14
|
+
signature = OpenSSL::HMAC.hexdigest(OpenSSL::Digest.new("sha256"), @key, timestamped_payload)
|
15
|
+
signature == header_signature
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
data/lib/try_terra.rb
CHANGED
@@ -8,6 +8,8 @@ module TryTerra
|
|
8
8
|
autoload :Client, "try_terra/client"
|
9
9
|
autoload :Resource, "try_terra/resource"
|
10
10
|
autoload :Object, "try_terra/object"
|
11
|
+
# webhook
|
12
|
+
autoload :WebHook, "try_terra/web_hook"
|
11
13
|
|
12
14
|
# Endpoints
|
13
15
|
autoload :AuthResource, "try_terra/resources/auth"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tryterra_api
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 1.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- William Kennedy
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-12-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -111,6 +111,7 @@ files:
|
|
111
111
|
- lib/try_terra/resources/subscriptions.rb
|
112
112
|
- lib/try_terra/resources/user_info.rb
|
113
113
|
- lib/try_terra/version.rb
|
114
|
+
- lib/try_terra/web_hook.rb
|
114
115
|
- lib/tryterra_api.rb
|
115
116
|
homepage: https://github.com/williamkennedy/tryterra_api
|
116
117
|
licenses:
|