freeclimb 2.2.0 → 3.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +6 -1
- data/README.md +4 -4
- data/freeclimb-2.2.0.gem +0 -0
- data/lib/freeclimb.rb +1 -0
- data/lib/freeclimb/api_client.rb +1 -1
- data/lib/freeclimb/utils.rb +34 -0
- data/lib/freeclimb/version.rb +1 -1
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8822c0cb7172e4c5ff3cab045f98636e7645b842dcc7c17097fec6b2257c10a7
|
4
|
+
data.tar.gz: fa3c4ec0294ec97f141a1d58dffd65034f1d664b8e4ea65e62fc4ffffb2c6911
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1ad8968cabebe723a38432655e665764a7841aa97bb21a0275f3d6920bdc9c870ef69b922f03c69e79320e567e9f5a39cc2e6a9d521c8e38c684f793cf8dd761
|
7
|
+
data.tar.gz: a8b822a510b5bed0bba1b77ea3507becc96efe65259a518a6f45d014ee4c564c24828f28d23f3bb75026ceebd40daeb8c337bb998e19373f807c13e7533c37fb
|
data/CHANGELOG.md
CHANGED
@@ -7,8 +7,13 @@ This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm
|
|
7
7
|
## [Unreleased]
|
8
8
|
None
|
9
9
|
|
10
|
+
<a name="3.0.0"></a>
|
11
|
+
## [3.0.0] - 2021-05-03
|
12
|
+
### Added
|
13
|
+
- Add `verify_request` utility function
|
14
|
+
|
10
15
|
<a name="2.2.0"></a>
|
11
|
-
## [2.
|
16
|
+
## [2.2.0] - 2021-04-12
|
12
17
|
### Changed
|
13
18
|
- Replace any language instance of `auth_token` or similar speech to `api_key`
|
14
19
|
|
data/README.md
CHANGED
@@ -5,7 +5,7 @@ FreeClimb is a cloud-based application programming interface (API) that puts the
|
|
5
5
|
This SDK is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project:
|
6
6
|
|
7
7
|
- API version: 1.0.0
|
8
|
-
- Package version:
|
8
|
+
- Package version: 3.0.0
|
9
9
|
- Build package: org.openapitools.codegen.languages.RubyClientCodegen
|
10
10
|
|
11
11
|
## Installation
|
@@ -21,16 +21,16 @@ gem build freeclimb.gemspec
|
|
21
21
|
Then either install the gem locally:
|
22
22
|
|
23
23
|
```shell
|
24
|
-
gem install ./freeclimb-
|
24
|
+
gem install ./freeclimb-3.0.0.gem
|
25
25
|
```
|
26
26
|
|
27
|
-
(for development, run `gem install --dev ./freeclimb-
|
27
|
+
(for development, run `gem install --dev ./freeclimb-3.0.0.gem` to install the development dependencies)
|
28
28
|
|
29
29
|
or publish the gem to a gem hosting service, e.g. [RubyGems](https://rubygems.org/).
|
30
30
|
|
31
31
|
Finally add this to the Gemfile:
|
32
32
|
|
33
|
-
gem 'freeclimb', '~>
|
33
|
+
gem 'freeclimb', '~> 3.0.0'
|
34
34
|
|
35
35
|
### Install from Ruby gems
|
36
36
|
```shell
|
data/freeclimb-2.2.0.gem
ADDED
Binary file
|
data/lib/freeclimb.rb
CHANGED
data/lib/freeclimb/api_client.rb
CHANGED
@@ -30,7 +30,7 @@ module Freeclimb
|
|
30
30
|
# @option config [Configuration] Configuration for initializing the object, default to Configuration.default
|
31
31
|
def initialize(config = Configuration.default)
|
32
32
|
@config = config
|
33
|
-
@user_agent = "FreeClimbSDK/
|
33
|
+
@user_agent = "FreeClimbSDK/3.0.0/ruby"
|
34
34
|
@default_headers = {
|
35
35
|
'Content-Type' => 'application/json',
|
36
36
|
'User-Agent' => @user_agent
|
@@ -0,0 +1,34 @@
|
|
1
|
+
require 'json'
|
2
|
+
require 'cgi'
|
3
|
+
require 'date'
|
4
|
+
require 'openssl'
|
5
|
+
|
6
|
+
module FreeClimb
|
7
|
+
class Utils
|
8
|
+
def self.verify_request(requestBody, signatureHeader, signingSecret, tolerance=5*60*1000)
|
9
|
+
signatureArr = signatureHeader.split(',')
|
10
|
+
signatureHash = {}
|
11
|
+
signatureArr.each { |queryStr|
|
12
|
+
hash = CGI.parse(queryStr)
|
13
|
+
if (signatureHash.key?(hash.keys[0]))
|
14
|
+
signatureHash[hash.keys[0]] = [signatureHash[hash.keys[0]]].append(hash.values[0][0])
|
15
|
+
else
|
16
|
+
signatureHash[hash.keys[0]] = hash.values[0][0]
|
17
|
+
end
|
18
|
+
}
|
19
|
+
|
20
|
+
currentTime = DateTime.now.strftime('%s')
|
21
|
+
signatureAge = currentTime.to_i - signatureHash["t"].to_i
|
22
|
+
if (tolerance < signatureAge)
|
23
|
+
raise StandardError.new "Request rejected - signature's timestamp failed against current tolerance of #{tolerance} milliseconds. Signature age: #{signatureAge} milliseconds";
|
24
|
+
end
|
25
|
+
|
26
|
+
data = signatureHash["t"] + "." + requestBody
|
27
|
+
hmac = OpenSSL::HMAC.hexdigest('sha256', signingSecret, data)
|
28
|
+
|
29
|
+
if (!signatureHash["v1"].include? hmac)
|
30
|
+
raise StandardError.new "Unverified Request Signature - FreeClimb was unable to verify that this request originated from FreeClimb. If this request was unexpected, it may be from a bad actor. Please proceed with caution. If this request was expected, to fix this issue try checking for any typos or misspelling of your signing secret.";
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
data/lib/freeclimb/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: freeclimb
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 3.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- OpenAPI-Generator
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-05-
|
11
|
+
date: 2021-05-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: typhoeus
|
@@ -196,6 +196,7 @@ files:
|
|
196
196
|
- freeclimb-2.1.0.gem
|
197
197
|
- freeclimb-2.1.1.gem
|
198
198
|
- freeclimb-2.1.2.gem
|
199
|
+
- freeclimb-2.2.0.gem
|
199
200
|
- freeclimb.gemspec
|
200
201
|
- lib/freeclimb.rb
|
201
202
|
- lib/freeclimb/api/default_api.rb
|
@@ -304,6 +305,7 @@ files:
|
|
304
305
|
- lib/freeclimb/models/update_call_request.rb
|
305
306
|
- lib/freeclimb/models/update_conference_participant_request.rb
|
306
307
|
- lib/freeclimb/models/update_conference_request.rb
|
308
|
+
- lib/freeclimb/utils.rb
|
307
309
|
- lib/freeclimb/version.rb
|
308
310
|
- spec/api/default_api_spec.rb
|
309
311
|
- spec/api/web_mocks.rb
|