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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 471c7ea0f4a5a8677e8d82808ed69814ebfa9673510e61ed6b09801cb70b87dd
4
- data.tar.gz: 5d9e889ec76d43ddbf3e9fc20c46e4384d48519db5acb3fd656efa0b89815952
3
+ metadata.gz: 21b48ec52f0372c72febb4c26fac18eebb78e75b2f41eded99f03698f149aaab
4
+ data.tar.gz: ec6aa4e101944b2164c0ecf9ccb99a08d355ecf99f1c50686e0c51108c9fcd49
5
5
  SHA512:
6
- metadata.gz: bf497137aa00edbdee86bd1b50255f7ad45e9075a3145548df7e414d8be7388b8d66f453625d1be26fe80caf87bd1ad223f74caafaf1d349048ad554e82b6ae8
7
- data.tar.gz: 8f98ccf27977b5f2422e650dde5670a28530fcfd68b5ad84d1a10e000f887688ee3d93c199e89421de3b56106292b14ce91180abd15d3da57d92a3b4b5f0b20c
6
+ metadata.gz: 56739e75e1b5a80872fdd14efc21b68a788bb852e38371fbe974b22d15b955e48c9c268f02129f1be977635d423fdfaf8351e98163bb5e9d7e04c82824568faa
7
+ data.tar.gz: 1475cb78d157ebbd28c79232a5c9d9c83dd6b16b5d36f5a612d83f4d76224451f3284723e9679c81c44b01519bebcbae86b14a704a1e83b4784ce5e35b923744
@@ -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
@@ -1,3 +1,3 @@
1
1
  module TryTerra
2
- VERSION = "0.1.2"
2
+ VERSION = "1.0.0"
3
3
  end
@@ -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.1.2
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-29 00:00:00.000000000 Z
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: