rs4 0.2.2 → 0.2.9

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: 8edb979aea62c9329b7a46903ecbcd1821a6c06095529ae43706b87f4035a944
4
- data.tar.gz: 8bf89c83e2c4c62a4c3cbbe5b1706e3e330e62fbfbda634da22d10cc2deb7355
3
+ metadata.gz: 58c1470115558a69ec369b78be72bb1c7913e13ccbf29c64931d2020edfe8d5f
4
+ data.tar.gz: 79d8ab66e22e0eacce069057d0802c3157937b8fb311aa5ecb064dfae5932f9d
5
5
  SHA512:
6
- metadata.gz: c1141f8182f210b2752da9b4ec45609448a9bb8cd5de2eb96034c90e95b89a16d416fbabc82e368d72d5b95735ea13bf90f6f2d6b4f8a492ad438a8d2218e1dc
7
- data.tar.gz: 29d24cebaace5128a40bad69153cad70112bd2a8bceb461a1487a364b7bfe9db361113c621ba6092f7e7e6166d9a01b8b6e39b86edfa7ac370d4f04916477561
6
+ metadata.gz: 973322b9feae4038cea97011992d227074f9f7a0286a649447c02fd5c98459c59df903cd17081fe3d994bb63cd447d9e4ee7b5b7dfc623c908cc3bb138b656fa
7
+ data.tar.gz: 6dd001b29aab096e7f54c5c29196601768fd9aceb96c235e2f40d7b91b51c5dc6a3581f3cb06e8cc0d6d55c930cddb4b2c1098a43ea025fcdfb2cd1dfc8a1dfe
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)
@@ -69,18 +69,34 @@ module RS4
69
69
  RS4.configuration.request_handler.execute(path, :get)
70
70
  end
71
71
 
72
+ def embed_document(template_guid, options = {})
73
+ path = "reusable_templates/#{template_guid}/embed_document"
74
+
75
+ body = options
76
+
77
+ response = RS4.configuration.request_handler.execute(path, :post, body)
78
+
79
+ Rails.logger.info("RS4::ReusableTemplate::embed_document:: #{response.inspect}")
80
+
81
+ unless response.is_a?(RS4::Error) || response.nil?
82
+ # parsed_response = JSON.parse(response.read_body, symbolize_names: true)
83
+
84
+ document_hash = response.dig(:document)
85
+
86
+ return RS4::Document.new(document_hash)
87
+ end
88
+ end
89
+
72
90
  def send_document(template_guid, options = {})
73
91
  path = "reusable_templates/#{template_guid}/send_document"
74
92
 
75
93
  body = options
76
94
 
77
- body[:in_person] = true
78
-
79
95
  response = RS4.configuration.request_handler.execute(path, :post, body)
80
96
 
81
97
  Rails.logger.info("RS4::ReusableTemplate::send_document:: #{response.inspect}")
82
98
 
83
- unless response.class == RS4::RequestError || response.nil?
99
+ unless response.is_a?(RS4::Error) || response.nil?
84
100
  # parsed_response = JSON.parse(response.read_body, symbolize_names: true)
85
101
 
86
102
  document_hash = response.dig(:document)
@@ -1,3 +1,3 @@
1
1
  module RS4
2
- VERSION = '0.2.2'.freeze
2
+ VERSION = '0.2.9'.freeze
3
3
  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.2
4
+ version: 0.2.9
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,7 +29,9 @@ 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