geetest_ruby_sdk 4.0.3 → 4.0.4

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: f4f67d9fe2e2bbb890315f13c0214eed4701469d9ec0d44f83dc5b27857e5e68
4
- data.tar.gz: 1e036fc6881bd36939e8906e7d654de5c3a1c3a5b8a18622b2235ef60faa9bfc
3
+ metadata.gz: 821275cdf801ef0f419d8b19257c7968f60fd1844af7b423f3309021e7b5e9da
4
+ data.tar.gz: ca687f43eb5d4f57d5a1b21294042eeb97e49735094c04e9bbd89494f7a2f912
5
5
  SHA512:
6
- metadata.gz: 0af8da7eab3fe0bcda683c48b5e0a5684c889374ba94cd6da3b7a747fccb360054c88deef110f3d4d108d8aafb31daaa21df57153c6b9305919b27024635086e
7
- data.tar.gz: 66094c37b4d7dd3b9e636b89851a3bfaf9aa8d2c86c7ee5dec32e6e918ee3b00adb3515e40a2ff61245e3cbb24b226e700005dd2a9a5f133caf57314fe6cbdd9
6
+ metadata.gz: b31d970fe4a4ed029a43baac51ffe563bb5b131548fcddf033013dd7bb513b3963992921f5b55e328954acbbddf594e64d5050913c57599878eaee1b9866eaf5
7
+ data.tar.gz: 7adc639a9c1eb2eca5269f7d8555e169f4f0689a6689966463d7939db2f48fa084e8f480bd06eab63bcfe1d6469f646bdcf6c2834e4dcf07acee4b2fba5b5b8c
@@ -0,0 +1,23 @@
1
+ name: Main
2
+
3
+ on: [push]
4
+
5
+ jobs:
6
+ test:
7
+ runs-on: ubuntu-latest
8
+
9
+ env:
10
+ RAILS_ENV: test
11
+ GEMFILE_RUBY_VERSION: 2.7.6
12
+
13
+ steps:
14
+ - uses: actions/checkout@v2
15
+
16
+ - name: Set up Ruby
17
+ uses: ruby/setup-ruby@v1
18
+ with:
19
+ ruby-version: 2.7
20
+ bundler-cache: true
21
+
22
+ - name: Run tests
23
+ run: bundle exec rspec
data/Gemfile CHANGED
@@ -4,7 +4,6 @@ source 'https://rubygems.org'
4
4
  gemspec
5
5
 
6
6
  gem 'logger'
7
- gem 'openssl', '~> 2.2'
8
7
  gem 'rest-client'
9
8
 
10
9
  group :test do
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- geetest_ruby_sdk (4.0.3)
4
+ geetest_ruby_sdk (4.0.4)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
@@ -18,14 +18,11 @@ GEM
18
18
  http-accept (1.7.0)
19
19
  http-cookie (1.0.5)
20
20
  domain_name (~> 0.5)
21
- ipaddr (1.2.4)
22
21
  logger (1.5.1)
23
22
  mime-types (3.4.1)
24
23
  mime-types-data (~> 3.2015)
25
24
  mime-types-data (3.2022.0105)
26
25
  netrc (0.11.0)
27
- openssl (2.2.2)
28
- ipaddr
29
26
  parallel (1.22.1)
30
27
  parser (3.1.2.1)
31
28
  ast (~> 2.4.1)
@@ -83,7 +80,6 @@ DEPENDENCIES
83
80
  bundler (~> 2.0)
84
81
  geetest_ruby_sdk!
85
82
  logger
86
- openssl (~> 2.2)
87
83
  rake (~> 12.0)
88
84
  rest-client
89
85
  rspec (~> 3.0)
@@ -33,12 +33,17 @@ module Geetest
33
33
  @digest_mod = options.fetch(:digest_mod, Account::DEFAULT_DIGEST_MOD)
34
34
  end
35
35
 
36
- def register(**options)
37
- Register.new(account: self).register(options)
36
+ def register(options = {})
37
+ Register.new(account: self).register(**options)
38
38
  end
39
39
 
40
- def validate?(challenge: nil, validate: nil, seccode: nil, **options)
41
- Validator.new(account: self).valid?(challenge, validate, seccode, options)
40
+ def validate?(data = {})
41
+ options = data.transform_keys(&:to_sym)
42
+ challenge = options.delete(:challenge)
43
+ validate = options.delete(:validate)
44
+ seccode = options.delete(:seccode)
45
+
46
+ Validator.new(account: self).valid?(challenge, validate, seccode, **options)
42
47
  end
43
48
  end
44
49
  end
@@ -16,16 +16,10 @@ module Geetest
16
16
  @api_server = URI.parse options.fetch(:api_server, DEFAULT_API_SERVER)
17
17
  end
18
18
 
19
- def validate?(lot_number: nil, captcha_output: nil, pass_token: nil, gen_time: nil, **options)
20
- return false unless lot_number && captcha_output && pass_token && gen_time
19
+ def validate?(data = {})
20
+ payload, options = prepare_payload(data)
21
+ return false if payload.nil?
21
22
 
22
- payload = {
23
- lot_number: lot_number,
24
- captcha_output: captcha_output,
25
- pass_token: pass_token,
26
- gen_time: gen_time,
27
- sign_token: Encryptor.encrypt(lot_number).with(captcha_key).by(DIGEST_MOD).to_s
28
- }
29
23
  response = request! payload, options
30
24
  Geetest.logger.debug "Geetest validate failed, reason: #{response['reason']}" if response['result'] != 'success'
31
25
  response['result'] == 'success'
@@ -36,6 +30,20 @@ module Geetest
36
30
 
37
31
  private
38
32
 
33
+ def prepare_payload(data)
34
+ options = data.transform_keys(&:to_sym)
35
+ payload = {
36
+ lot_number: options.delete(:lot_number),
37
+ captcha_output: options.delete(:captcha_output),
38
+ pass_token: options.delete(:pass_token),
39
+ gen_time: options.delete(:gen_time)
40
+ }.compact
41
+ return [nil, nil] unless payload.size == 4
42
+
43
+ payload[:sign_token] = Encryptor.encrypt(payload[:lot_number]).with(captcha_key).by(DIGEST_MOD).to_s
44
+ [payload, options]
45
+ end
46
+
39
47
  def request!(payload, options = {})
40
48
  response = RestClient.post "#{api_server}/validate?captcha_id=#{captcha_id}", options.merge(payload)
41
49
  JSON.parse response.body
@@ -1,3 +1,3 @@
1
1
  module GeetestRubySdk
2
- VERSION = '4.0.3'
2
+ VERSION = '4.0.4'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: geetest_ruby_sdk
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.0.3
4
+ version: 4.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yuehao Hua
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: exe
11
11
  cert_chain: []
12
- date: 2022-09-16 00:00:00.000000000 Z
12
+ date: 2023-07-05 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler
@@ -46,6 +46,7 @@ executables: []
46
46
  extensions: []
47
47
  extra_rdoc_files: []
48
48
  files:
49
+ - ".github/workflows/main.yml"
49
50
  - ".gitignore"
50
51
  - ".rspec"
51
52
  - ".rubocop.yml"
@@ -92,7 +93,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
92
93
  - !ruby/object:Gem::Version
93
94
  version: '0'
94
95
  requirements: []
95
- rubygems_version: 3.1.6
96
+ rubygems_version: 3.4.15
96
97
  signing_key:
97
98
  specification_version: 4
98
99
  summary: Ruby version of Geetest SDK