rs4 0.2.3 → 0.2.10

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: 4064ed9919a67b9d7b02c1b00452f2ba0ff1323ba8953a4a9826cfd000714dcc
4
- data.tar.gz: 6907a7d5bad42fac43c1d9b372936cfe44c6d1ec8f2257573d3ed159e04908ae
3
+ metadata.gz: 67df5afff0e76629545e1cc0d5fd9721395812a6b5c72c7adb6d3f9bc03e149b
4
+ data.tar.gz: '08dcb4aa33cfc70fbdd359cbe1fcd42e16ba0adf78a944b2ce36d37eb476d839'
5
5
  SHA512:
6
- metadata.gz: 43d0f4b4ee7df70868c5c413967eeeca8047cf992fbebcc8fd286ad2c93f0590dec64df01b561927f4a7e2d7a682ecf515659a89c42cd207ed3f40f3e1c03950
7
- data.tar.gz: a195784b8fb5f06e368fc8f89339d6b89fc282e95deaee5a126f2e42bca5157661f9e80398a291a301979a3ace429da7ce19d17ccb2e18020518da12b81acb53
6
+ metadata.gz: '062720059d3fcd5e026e0b4e130121eacec1de5b1fe07d3432218902bf4303cadf67ef4c2037cef6a3454c0ee60691dac129b7e6e9a48bb5a92595095c51d72e'
7
+ data.tar.gz: 13a9dbcf8616d98dc76af53048b71ae60b136976084a194d16b4fcd03f759705945d3c1cca2ae429fb0b1811a255b3775b6c6ec962f032179f698e2b158dde70
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
@@ -90,7 +90,7 @@ module RS4
90
90
 
91
91
  response = RS4.configuration.request_handler.execute(path, :get)
92
92
 
93
- unless response.class == RS4::RequestError || response.nil?
93
+ unless response.is_a?(RS4::Error) || response.nil?
94
94
  archived_document = response.dig(:archived_document)
95
95
 
96
96
  Document.new(archived_document) if archived_document
@@ -104,7 +104,37 @@ module RS4
104
104
 
105
105
  response = RS4.configuration.request_handler.execute(path, :get)
106
106
 
107
- unless response.class == RS4::RequestError || response.nil? # .class == Net::HTTPOK
107
+ unless response.is_a?(RS4::Error) || response.nil? # .class == Net::HTTPOK
108
+ raw_document = response.dig(:document) # JSON.parse(response.body, symbolize_names: true)
109
+
110
+ # Document.new(raw_document[:document])
111
+ Document.new(raw_document) if raw_document
112
+ end
113
+ end
114
+
115
+ def get_force_complete(document_guid)
116
+ return unless document_guid.present?
117
+
118
+ path = "documents/#{document_guid}/force_complete"
119
+
120
+ response = RS4.configuration.request_handler.execute(path, :post)
121
+
122
+ unless response.is_a?(RS4::Error) || response.nil? # .class == Net::HTTPOK
123
+ raw_document = response.dig(:document) # JSON.parse(response.body, symbolize_names: true)
124
+
125
+ # Document.new(raw_document[:document])
126
+ Document.new(raw_document) if raw_document
127
+ end
128
+ end
129
+
130
+ def get_force_complete(document_guid)
131
+ return unless document_guid.present?
132
+
133
+ path = "documents/#{document_guid}/force_complete"
134
+
135
+ response = RS4.configuration.request_handler.execute(path, :get)
136
+
137
+ unless response.is_a?(RS4::Error) || response.nil? # .class == Net::HTTPOK
108
138
  raw_document = response.dig(:document) # JSON.parse(response.body, symbolize_names: true)
109
139
 
110
140
  # Document.new(raw_document[:document])
@@ -116,7 +146,7 @@ module RS4
116
146
  path = 'documents'
117
147
  response = RS4.configuration.request_handler.execute(path, :get)
118
148
 
119
- unless response.class == RS4::RequestError || response.nil?
149
+ unless response.is_a?(RS4::Error) || response.nil?
120
150
  documents = []
121
151
 
122
152
  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,52 @@ module RS4
69
69
  RS4.configuration.request_handler.execute(path, :get)
70
70
  end
71
71
 
72
+ def prepare_document(template_guid, options = {})
73
+ path = "reusable_templates/#{template_guid}/prepare_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
+
90
+ def embed_document(template_guid, options = {})
91
+ path = "reusable_templates/#{template_guid}/embed_document"
92
+
93
+ body = options
94
+
95
+ response = RS4.configuration.request_handler.execute(path, :post, body)
96
+
97
+ Rails.logger.info("RS4::ReusableTemplate::embed_document:: #{response.inspect}")
98
+
99
+ unless response.is_a?(RS4::Error) || response.nil?
100
+ # parsed_response = JSON.parse(response.read_body, symbolize_names: true)
101
+
102
+ document_hash = response.dig(:document)
103
+
104
+ return RS4::Document.new(document_hash)
105
+ end
106
+ end
107
+
72
108
  def send_document(template_guid, options = {})
73
109
  path = "reusable_templates/#{template_guid}/send_document"
74
110
 
75
111
  body = options
76
112
 
77
- body[:in_person] = true
78
-
79
113
  response = RS4.configuration.request_handler.execute(path, :post, body)
80
114
 
81
115
  Rails.logger.info("RS4::ReusableTemplate::send_document:: #{response.inspect}")
82
116
 
83
- unless response.class == RS4::RequestError || response.nil?
117
+ unless response.is_a?(RS4::Error) || response.nil?
84
118
  # parsed_response = JSON.parse(response.read_body, symbolize_names: true)
85
119
 
86
120
  document_hash = response.dig(:document)
@@ -1,3 +1,3 @@
1
1
  module RS4
2
- VERSION = '0.2.3'.freeze
2
+ VERSION = '0.2.10'.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.3
4
+ version: 0.2.10
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-26 00:00:00.000000000 Z
11
+ date: 2020-07-10 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