global_sign 2.1.1 → 2.2.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
  SHA1:
3
- metadata.gz: fbcae30a715ef2e699e49e0c732728e96a8b5aca
4
- data.tar.gz: 98581a1532b91a4c6880847b5689835e84ac08fe
3
+ metadata.gz: b61f4c3a95b781f91f21f77edbe3536de9a029af
4
+ data.tar.gz: a7f875c2e646bc51e608408fdf95fb2b6e53b1e4
5
5
  SHA512:
6
- metadata.gz: 944d5c6940f2d781456666ab0d999d46798fd7b4e44bf3e898eeb1118d0d21ebcae50a4e5c7f0fa00c6f401692ba006ac1ef349960618e83376a28ba9bed813b
7
- data.tar.gz: 8085a95b81bb0ccbacd9e5b0732275a4c987ddbe46248103bb245dd5dd9ae8034cb79ac3e4e061023639f14c010154bf6e1c5ab0add3ce47133ce153b097f8d2
6
+ metadata.gz: f4382bee9a338e265906f0a6d2903e650617b8afe41b747a3e0b5b183f7798d8f9c49db5659c243a02680b543d11966de3b54564af40206ff6a00d9ab4c00c14
7
+ data.tar.gz: def1382d5dc859cf74b6511207eedee1b1c1c959589c090513f8f5996135f93cc1dfc1ad982152a832bc61e1ee03ff5442f420e8943ad3de2cab6c9464c5a3c3
@@ -1,3 +1,8 @@
1
+ ## 2.2.0
2
+
3
+ - Added `options` optional keyword argument to `GlobalSign::Client`
4
+ - It supports `timeout` which specifies number of seconds to wait for request
5
+
1
6
  ## 2.1.1
2
7
  - Fixed bug: `GlobalSign::OrderGetterByOrderId::Request` NoMethodError: undefined method `text` for nil:NilClass
3
8
 
data/README.md CHANGED
@@ -236,6 +236,15 @@ response = client.process(request)
236
236
  puts response.params # => { common_name: "www.example.com", ... }
237
237
  ```
238
238
 
239
+ ### Client options
240
+
241
+ `GlobalSign::Client` allows `options` argument in order to specify its behavior.
242
+ For now, it supports `timeout` which specifies number of seconds to wait for request.
243
+
244
+ ```ruby
245
+ client = GlobalSign::Client.new(options: { timeout: 120 })
246
+ ```
247
+
239
248
  ## Contributing
240
249
 
241
250
  1. Create your feature branch (git checkout -b my-new-feature)
@@ -14,6 +14,8 @@ require 'global_sign/order_getter_by_order_id'
14
14
  require 'global_sign/csr_decoder'
15
15
  require 'global_sign/dns_verification'
16
16
  require 'global_sign/dns_verification_for_issue'
17
+ require 'global_sign/dv_approver_list'
18
+ require 'global_sign/dv_order'
17
19
 
18
20
  module GlobalSign
19
21
  class << self
@@ -2,12 +2,13 @@ require 'faraday'
2
2
 
3
3
  module GlobalSign
4
4
  class Client
5
- def initialize
5
+ def initialize(options: {})
6
6
  @configuration = GlobalSign.configuration
7
7
 
8
8
  @connection = Faraday::Connection.new(url: @configuration.endpoint) do |conn|
9
9
  conn.request :url_encoded
10
10
  conn.adapter Faraday.default_adapter
11
+ conn.options[:timeout] = options[:timeout] if options[:timeout].present?
11
12
  end
12
13
  end
13
14
 
@@ -37,6 +38,10 @@ module GlobalSign
37
38
  GlobalSign::UrlVerificationForIssue::Response
38
39
  when GlobalSign::OrderGetterByOrderId::Request
39
40
  GlobalSign::OrderGetterByOrderId::Response
41
+ when GlobalSign::DVApproverList::Request
42
+ GlobalSign::DVApproverList::Response
43
+ when GlobalSign::DVOrder::Request
44
+ GlobalSign::DVOrder::Response
40
45
  else
41
46
  raise ArgumentError, 'invalid request argument'
42
47
  end
@@ -0,0 +1,2 @@
1
+ require 'global_sign/dv_approver_list/request'
2
+ require 'global_sign/dv_approver_list/response'
@@ -0,0 +1,27 @@
1
+ module GlobalSign
2
+ module DVApproverList
3
+ class Request < GlobalSign::Request
4
+ def initialize(fqdn)
5
+ @fqdn = fqdn
6
+ end
7
+
8
+ def path
9
+ 'ServerSSLService'
10
+ end
11
+
12
+ def action
13
+ 'GetDVApproverList'
14
+ end
15
+
16
+ def request_header
17
+ :QueryRequestHeader
18
+ end
19
+
20
+ def params
21
+ {
22
+ FQDN: @fqdn
23
+ }
24
+ end
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,33 @@
1
+ module GlobalSign
2
+ module DVApproverList
3
+ class Response < GlobalSign::Response
4
+ module XPath
5
+ ORDER_ID = '//Response/OrderID'.freeze
6
+ APPROVERS = '//Response/Approvers'.freeze
7
+ SEARCH_ORDER_DETAIL = '//Approvers/SearchOrderDetail'.freeze
8
+ end
9
+
10
+ def response_header
11
+ :QueryResponseHeader
12
+ end
13
+
14
+ def params
15
+ @params ||= {
16
+ order_id: @xml.xpath(XPath::ORDER_ID).text,
17
+ approvers: approvers_list
18
+ }
19
+ end
20
+
21
+ private
22
+
23
+ def approvers_list
24
+ @approvers ||= @xml.xpath(XPath::SEARCH_ORDER_DETAIL).map do |approver|
25
+ {
26
+ type: approver.xpath('ApproverType').text,
27
+ email: approver.xpath('ApproverEmail').text
28
+ }
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,2 @@
1
+ require 'global_sign/dv_order/request'
2
+ require 'global_sign/dv_order/response'
@@ -0,0 +1,72 @@
1
+ module GlobalSign
2
+ module DVOrder
3
+ class Request < GlobalSign::Request
4
+ KIND_RENEWAL = 'renewal'.freeze
5
+
6
+ def initialize(product_code:, order_kind:, validity_period_months:, csr:, approver_email:, order_id:, renewal_target_order_id: nil, contract_info: nil)
7
+ @product_code = product_code
8
+ @order_kind = order_kind
9
+ @validity_period_months = validity_period_months
10
+ @csr = csr
11
+ @approver_email = approver_email
12
+ @order_id = order_id
13
+ @renewal_target_order_id = renewal_target_order_id
14
+ @contract_info = contract_info || GlobalSign.contract
15
+ end
16
+
17
+ def path
18
+ 'ServerSSLService'
19
+ end
20
+
21
+ def action
22
+ 'DVOrder'
23
+ end
24
+
25
+ def request_header
26
+ :OrderRequestHeader
27
+ end
28
+
29
+ def params
30
+ @params = {
31
+ OrderRequestParameter: order_request_parameter,
32
+ OrderID: @order_id,
33
+ ApproverEmail: @approver_email,
34
+ ContactInfo: contact_info
35
+ }
36
+ end
37
+
38
+ private
39
+
40
+ def order_request_parameter
41
+ request_params.tap do |params|
42
+ params[:RenewalTargetOrderID] = @renewal_target_order_id if renew?
43
+ end
44
+ end
45
+
46
+ def request_params
47
+ {
48
+ ProductCode: @product_code,
49
+ OrderKind: @order_kind,
50
+ Licenses: 1,
51
+ ValidityPeriod: {
52
+ Months: @validity_period_months
53
+ },
54
+ CSR: @csr
55
+ }
56
+ end
57
+
58
+ def contact_info
59
+ {
60
+ FirstName: @contract_info.first_name,
61
+ LastName: @contract_info.last_name,
62
+ Phone: @contract_info.phone_number,
63
+ Email: @contract_info.email
64
+ }
65
+ end
66
+
67
+ def renew?
68
+ @order_kind == KIND_RENEWAL
69
+ end
70
+ end
71
+ end
72
+ end
@@ -0,0 +1,19 @@
1
+ module GlobalSign
2
+ module DVOrder
3
+ class Response < GlobalSign::Response
4
+ module XPath
5
+ ORDER_ID = '//Response/OrderID'.freeze
6
+ end
7
+
8
+ def response_header
9
+ :OrderResponseHeader
10
+ end
11
+
12
+ def params
13
+ @params ||= {
14
+ order_id: @xml.xpath(XPath::ORDER_ID).text
15
+ }
16
+ end
17
+ end
18
+ end
19
+ end
@@ -1,3 +1,3 @@
1
1
  module GlobalSign
2
- VERSION = "2.1.1"
2
+ VERSION = "2.2.0"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: global_sign
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.1
4
+ version: 2.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - ku00
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-05-19 00:00:00.000000000 Z
11
+ date: 2018-04-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -194,6 +194,12 @@ files:
194
194
  - lib/global_sign/dns_verification_for_issue.rb
195
195
  - lib/global_sign/dns_verification_for_issue/request.rb
196
196
  - lib/global_sign/dns_verification_for_issue/response.rb
197
+ - lib/global_sign/dv_approver_list.rb
198
+ - lib/global_sign/dv_approver_list/request.rb
199
+ - lib/global_sign/dv_approver_list/response.rb
200
+ - lib/global_sign/dv_order.rb
201
+ - lib/global_sign/dv_order/request.rb
202
+ - lib/global_sign/dv_order/response.rb
197
203
  - lib/global_sign/order_getter_by_order_id.rb
198
204
  - lib/global_sign/order_getter_by_order_id/request.rb
199
205
  - lib/global_sign/order_getter_by_order_id/response.rb
@@ -229,7 +235,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
229
235
  version: '0'
230
236
  requirements: []
231
237
  rubyforge_project:
232
- rubygems_version: 2.4.5.1
238
+ rubygems_version: 2.6.13
233
239
  signing_key:
234
240
  specification_version: 4
235
241
  summary: A Ruby interface to the GlobalSign API.