rs4 0.2.1 → 0.2.8

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: 4e8e2fd74b61acb79edb0d4fbc64e49ef1c0fad6b8696d466b83a0cec8e6bab9
4
- data.tar.gz: 2b611b82edec6aa6c897472a2163110cd8a1d01a8cb39cc85a47e1628de7d955
3
+ metadata.gz: 22cb71a5eaa8f0c8719e5865fd5ac49b47777e482bd992c51fbd54032be650eb
4
+ data.tar.gz: 44d751a6a1eb28e598113b6056964a0204bfd7dc7822378210372e3c89450805
5
5
  SHA512:
6
- metadata.gz: '0975d5000647806f81c71796563a0f13857093da7e4e18518c02bce918ce293e2247f50f08cc03a831bb0eca2dfaaf4f77b2784eafaf5032230f42773ebcf7b4'
7
- data.tar.gz: 3bccea9722d64d825e1dc8aa5e542fc7bc6fd98b5ff521e3bd93661b8e2f56a2af8fbfd7ccaf9cf6b82252cde7dbbb868c0fe0af910e0c7214426e50e45bece7
6
+ metadata.gz: 58ba86bdae0ee04e01a4f5633237442e208f32b000719e6717bd4d6aa4055d40da0885f6a49ab836f98209cbbcc6a8da849eddcf7445118a7037b0334fc07291
7
+ data.tar.gz: 6d8a3142513f6a52d80483186fdcd0cfbcce7f85a09d8290846baacc1ca8d6f0e95249d02da88e66927b49334650ff5953000f9de0ac261b8293c343b6000510
data/lib/rs4.rb CHANGED
@@ -6,6 +6,7 @@ require 'rs4/request.rb'
6
6
  require 'rs4/document.rb'
7
7
  require 'rs4/configuration.rb'
8
8
  require 'rs4/request_error.rb'
9
+ require 'rs4/configuration_error.rb'
9
10
  require 'rs4/reusable_template.rb'
10
11
 
11
12
  require 'test/mock_request.rb'
@@ -14,5 +14,20 @@ module RS4
14
14
  attr_accessor :request_handler
15
15
  attr_accessor :private_api_key
16
16
  attr_accessor :api_host
17
+ attr_accessor :errors
18
+
19
+ def valid?
20
+ @errors = []
21
+
22
+ @errors << '`private_api_key` not set' unless private_api_key.present?
23
+ @errors << '`api_host` not set' unless api_host.present?
24
+
25
+ if @errors.any?
26
+ Rails.logger.error("RS4 Configuration Invalid: #{@errors.join(',')}")
27
+ return false
28
+ else
29
+ return true
30
+ end
31
+ end
17
32
  end
18
33
  end
@@ -0,0 +1,15 @@
1
+ require 'rs4/error.rb'
2
+
3
+ module RS4
4
+ # Error should be returned when the module has been
5
+ # improperly configured
6
+ class ConfigurationError < Error
7
+ attr_accessor :error_fields
8
+
9
+ def initialize(error_fields = [], message)
10
+ super(message)
11
+
12
+ @error_fields = error_fields
13
+ end
14
+ end
15
+ end
@@ -9,6 +9,7 @@ module RS4
9
9
  EXECUTED_STATE = :executed
10
10
 
11
11
  attr_accessor :id
12
+ attr_accessor :original_guid
12
13
  attr_accessor :current_signer_id
13
14
  attr_accessor :name
14
15
  attr_accessor :filename
@@ -82,14 +83,28 @@ module RS4
82
83
  end
83
84
 
84
85
  class << self
86
+ def get_archive_document(document_guid)
87
+ return unless document_guid.present?
88
+
89
+ path = "archived_documents_by_original_guid/#{document_guid}"
90
+
91
+ response = RS4.configuration.request_handler.execute(path, :get)
92
+
93
+ unless response.is_a?(RS4::Error) || response.nil?
94
+ archived_document = response.dig(:archived_document)
95
+
96
+ Document.new(archived_document) if archived_document
97
+ end
98
+ end
99
+
85
100
  def get_document(document_guid)
86
- return unless document_guid
101
+ return unless document_guid.present?
87
102
 
88
103
  path = "documents/#{document_guid}"
89
104
 
90
105
  response = RS4.configuration.request_handler.execute(path, :get)
91
106
 
92
- unless response.class == RS4::RequestError || response.nil? # .class == Net::HTTPOK
107
+ unless response.is_a?(RS4::Error) || response.nil? # .class == Net::HTTPOK
93
108
  raw_document = response.dig(:document) # JSON.parse(response.body, symbolize_names: true)
94
109
 
95
110
  # Document.new(raw_document[:document])
@@ -101,7 +116,7 @@ module RS4
101
116
  path = 'documents'
102
117
  response = RS4.configuration.request_handler.execute(path, :get)
103
118
 
104
- unless response.class == RS4::RequestError || response.nil?
119
+ unless response.is_a?(RS4::Error) || response.nil?
105
120
  documents = []
106
121
 
107
122
  response.dig(:documents).each do |document_hash|
@@ -0,0 +1,12 @@
1
+ module RS4
2
+ # Standard Error returning a simple message
3
+ # Should be extended by additional classes
4
+ # to provide needed behavior
5
+ class Error
6
+ attr_accessor :message
7
+
8
+ def initialize(message)
9
+ @message = message
10
+ end
11
+ end
12
+ end
@@ -7,6 +7,11 @@ module RS4
7
7
 
8
8
  class << self
9
9
  def execute(path, method = :get, body = {})
10
+ # Check required keys exist before continuing
11
+ unless RS4.configuration.valid?
12
+ return RS4::ConfigurationError.new(RS4.configuration.errors, 'Invalid Configuration')
13
+ end
14
+
10
15
  url = URI(RS4.configuration.api_host + '/public/v1/' + path)
11
16
 
12
17
  http = Net::HTTP.new(url.host, url.port)
@@ -1,18 +1,20 @@
1
+ require 'rs4/error.rb'
2
+
1
3
  module RS4
2
4
  # The standard error returned when a request to the RS4
3
5
  # API fails
4
6
  # code - the NetHTTP response code as a number (eg - 200)
5
7
  # error_class - which NetHTTP class was returned by the response
6
8
  # message - the error message (if any) returned in the response
7
- class RequestError
9
+ class RequestError < Error
8
10
  attr_accessor :code
9
11
  attr_accessor :error_class
10
- attr_accessor :message
11
12
 
12
13
  def initialize(code, error_class, message)
14
+ super(message)
15
+
13
16
  @code = code
14
17
  @error_class = error_class
15
- @message = message
16
18
  end
17
19
  end
18
20
  end
@@ -50,7 +50,7 @@ module RS4
50
50
 
51
51
  response = RS4.configuration.request_handler.execute(path, :get)
52
52
 
53
- unless response.class == RS4::RequestError || response.nil?
53
+ unless response.is_a?(RS4::Error) || response.nil?
54
54
  # parsed_response = JSON.parse(response.read_body, symbolize_names: true)
55
55
 
56
56
  template_hash = response.dig(:reusable_template)
@@ -74,13 +74,11 @@ module RS4
74
74
 
75
75
  body = options
76
76
 
77
- body[:in_person] = true
78
-
79
77
  response = RS4.configuration.request_handler.execute(path, :post, body)
80
78
 
81
79
  Rails.logger.info("RS4::ReusableTemplate::send_document:: #{response.inspect}")
82
80
 
83
- unless response.class == RS4::RequestError || response.nil?
81
+ unless response.is_a?(RS4::Error) || response.nil?
84
82
  # parsed_response = JSON.parse(response.read_body, symbolize_names: true)
85
83
 
86
84
  document_hash = response.dig(:document)
@@ -1,3 +1,3 @@
1
1
  module RS4
2
- VERSION = '0.2.1'.freeze
2
+ VERSION = '0.2.8'.freeze
3
3
  end
@@ -0,0 +1,114 @@
1
+ module RS4
2
+ class MockRequest
3
+ class << self
4
+ def execute(path, method = :get, _body = {})
5
+ mockument = {
6
+ id: SecureRandom.uuid,
7
+ current_signer_id: 0,
8
+ name: 'noname',
9
+ filename: 'noname.pdf',
10
+ executed_at: Date.today,
11
+ expired_at: Date.today + 1.day,
12
+ sent_at: Date.today,
13
+ state: 'draft',
14
+ thumbnail_url: 'google.com',
15
+ sender: 'sender',
16
+ recipients: [
17
+ {
18
+ role_name: 'Investor',
19
+ sign_url: 'www.google.com'
20
+ }
21
+ ],
22
+ audits: nil,
23
+ page_image_urls: 'google.com',
24
+ signed_pdf_url: 'google.com/pdf.pdf',
25
+ tags: nil,
26
+ merge_field_values: nil,
27
+ embed_codes: nil,
28
+ in_person: true,
29
+ shared_with: nil,
30
+ identity_method: nil,
31
+ passcode_pin_enabled: false,
32
+ original_file_url: 'google.com'
33
+ }
34
+
35
+ if _body&.dig(:roles)&.any?
36
+
37
+ mockument[:recipients] = []
38
+
39
+ _body[:roles].each do |role|
40
+ mockument[:recipients] << {
41
+ role_name: role[:name],
42
+ sign_url: 'www.google.com'
43
+ }
44
+ end
45
+ end
46
+
47
+ mockplate = {
48
+ id: SecureRandom.uuid,
49
+ name: 'template',
50
+ creator: 'creator',
51
+ expires_in: Date.today + 1.day,
52
+ signer_sequencing: false,
53
+ shared_with: nil,
54
+ distribution_method: nil,
55
+ identity_method: nil,
56
+ kba: nil,
57
+ passcode: nil,
58
+ filename: 'template.pdf',
59
+ tags: nil,
60
+ user_id: 1,
61
+ roles: [],
62
+ merge_field_components: [],
63
+ created_at: Date.today,
64
+ updated_at: Date.today,
65
+ thumbnail_url: 'google.com/pdf.pdf',
66
+ page_image_urls: 'google.com/image'
67
+ }
68
+
69
+ case path
70
+ when %r{reusable_templates/[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}/send_document}
71
+ return {
72
+ document: mockument
73
+ }
74
+ when %r{reusable_templates/[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}}
75
+ return {
76
+ reusable_template: mockplate
77
+ }
78
+ when /reusable_templates/
79
+ results = {
80
+ reusable_templates: []
81
+ }
82
+
83
+ i = 0
84
+ while i < 3
85
+ mockplate[:id] = SecureRandom.uuid
86
+ results[:reusable_templates] << mockplate
87
+ i += 1
88
+ end
89
+
90
+ return results
91
+ when %r{documents/[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}}
92
+ return {
93
+ document: mockument
94
+ }
95
+
96
+ when /documents/
97
+ Rails.logger.info("#{method} documents")
98
+
99
+ results = {
100
+ documents: []
101
+ }
102
+ i = 0
103
+ while i < 3
104
+ results[:documents] << mockument
105
+ i += 1
106
+ end
107
+
108
+ return results
109
+
110
+ end
111
+ end
112
+ end
113
+ end
114
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rs4
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.2.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - donny
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-06-24 00:00:00.000000000 Z
11
+ date: 2020-07-09 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: Provides ruby access to CRUD operations for RightSignature documents
14
14
  and reusable templates
@@ -29,11 +29,14 @@ files:
29
29
  - bin/setup
30
30
  - lib/rs4.rb
31
31
  - lib/rs4/configuration.rb
32
+ - lib/rs4/configuration_error.rb
32
33
  - lib/rs4/document.rb
34
+ - lib/rs4/error.rb
33
35
  - lib/rs4/request.rb
34
36
  - lib/rs4/request_error.rb
35
37
  - lib/rs4/reusable_template.rb
36
38
  - lib/rs4/version.rb
39
+ - lib/test/mock_request.rb
37
40
  - license.txt
38
41
  - rs4.gemspec
39
42
  homepage: https://github.com/equitymultiple/rs4