tryterra_api 0.1.2 → 1.0.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: 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: