paperlex 0.9.3 → 0.9.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.
data/lib/paperlex.rb CHANGED
@@ -21,6 +21,7 @@ module Paperlex
21
21
  autoload :Slaw
22
22
  autoload :ReviewSession
23
23
  autoload :Signer
24
+ autoload :Signature
24
25
  autoload :Versions
25
26
 
26
27
  class Version < Hashie::Dash
@@ -16,7 +16,7 @@ module Paperlex
16
16
  end
17
17
 
18
18
  def get(url, attrs = {})
19
- parse(RestClient::Request.execute(:method => :get, :url => "#{Paperlex.base_url}/#{url}", :payload => attrs.merge(:token => Paperlex.token)))
19
+ parse(RestClient.get("#{Paperlex.base_url}/#{url}?#{attrs.merge(:token => Paperlex.token).to_query}"))
20
20
  end
21
21
 
22
22
  def post(url, attrs = {})
@@ -28,7 +28,7 @@ module Paperlex
28
28
  end
29
29
 
30
30
  def delete(url, attrs = {})
31
- parse(RestClient::Request.execute(:method => :delete, :url => "#{Paperlex.base_url}/#{url}", :payload => attrs.merge(:token => Paperlex.token)))
31
+ parse(RestClient.delete("#{Paperlex.base_url}/#{url}?#{attrs.merge(:token => Paperlex.token).to_query}"))
32
32
  end
33
33
  end
34
34
 
@@ -4,6 +4,7 @@ module Paperlex
4
4
 
5
5
  extend ActiveSupport::Autoload
6
6
  autoload :Signers
7
+ autoload :Signatures
7
8
  autoload :Responses
8
9
  autoload :ReviewSessions
9
10
  autoload :Versions
@@ -134,6 +135,31 @@ module Paperlex
134
135
  ReviewSessions[uuid].destroy(review_session_uuid)
135
136
  end
136
137
 
138
+ # Signatures
139
+ # Requires access to the remote signature program:
140
+ # https://api.paperlex.com/remote_signature.html
141
+ def signatures=(signatures)
142
+ self[:signatures] = signatures.map {|signature| signature.is_a?(Paperlex::Signature) ? signature : Paperlex::Signature.new(signature.merge(:contract_uuid => uuid)) }
143
+ end
144
+
145
+ def fetch_signatures
146
+ self.signatures = Signatures[uuid].all
147
+ signatures
148
+ end
149
+
150
+ def fetch_signature(signature_uuid)
151
+ remove_signature!(signature_uuid)
152
+ new_signature = Signatures[uuid].find(signature_uuid)
153
+ self.signatures << new_signature
154
+ new_signature
155
+ end
156
+
157
+ def create_signature(attrs)
158
+ signature = Signatures[uuid].create(attrs)
159
+ self.signatures << signature
160
+ signature
161
+ end
162
+
137
163
  # Versions
138
164
  def versions
139
165
  Versions[uuid].all.map {|version| Version.new(version) }
@@ -186,6 +212,11 @@ module Paperlex
186
212
  signers.delete_if {|signer| signer['uuid'] == signer_uuid }
187
213
  end
188
214
 
215
+ def remove_signature!(signature_to_remove)
216
+ signature_uuid = to_uuid(signature_to_remove)
217
+ signatures.delete_if {|signature| signature['uuid'] == signature_uuid }
218
+ end
219
+
189
220
  def remove_review_session!(review_session_to_remove)
190
221
  review_session_uuid = to_uuid(review_session_to_remove)
191
222
  review_sessions.delete_if {|review_session| review_session['uuid'] == review_session_uuid }
@@ -0,0 +1,31 @@
1
+ module Paperlex
2
+ class Contract < Base
3
+ class Signatures < Paperlex::Base
4
+ include SubObject
5
+
6
+ class << self
7
+ def create_fields
8
+ [:signer, :identity, :remote_ip, :user_agent]
9
+ end
10
+ end
11
+
12
+ def object_class
13
+ Paperlex::Signature
14
+ end
15
+
16
+ def short_name
17
+ :signature
18
+ end
19
+
20
+ private
21
+
22
+ def collection_url
23
+ "contracts/#{contract_uuid}/signatures.json"
24
+ end
25
+
26
+ def url_for(uuid)
27
+ "contracts/#{contract_uuid}/signatures/#{to_uuid(uuid)}.json"
28
+ end
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,9 @@
1
+ module Paperlex
2
+ class Signature < Base
3
+ property :contract_uuid, :required => true
4
+ property :signer_uuid, :required => true
5
+ property :identity_verification_method, :required => true
6
+ property :identity_verification_value, :required => true
7
+ property :created_at, :required => true
8
+ end
9
+ end
data/lib/paperlex/slaw.rb CHANGED
@@ -29,14 +29,14 @@ module Paperlex
29
29
  end
30
30
  end
31
31
 
32
- def html_url(responses = nil)
33
- params = {:token => Paperlex.token}
32
+ def html_url(responses = nil, options = {})
33
+ params = options.merge(:token => Paperlex.token)
34
34
  params[:responses] = responses if responses.present?
35
35
  "#{Paperlex.base_url}/slaws/#{uuid}.html?#{params.to_query}"
36
36
  end
37
37
 
38
- def to_html(responses = nil)
39
- RestClient.get(html_url(responses))
38
+ def to_html(responses = nil, options = {})
39
+ RestClient.get(html_url(responses, options))
40
40
  end
41
41
 
42
42
  def destroy
@@ -1,3 +1,3 @@
1
1
  module Paperlex
2
- VERSION = "0.9.3"
2
+ VERSION = "0.9.4"
3
3
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: paperlex
3
3
  version: !ruby/object:Gem::Version
4
- hash: 61
4
+ hash: 51
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 9
9
- - 3
10
- version: 0.9.3
9
+ - 4
10
+ version: 0.9.4
11
11
  platform: ruby
12
12
  authors:
13
13
  - Paperlex
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2012-01-09 00:00:00 Z
18
+ date: 2012-01-10 00:00:00 Z
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
21
  name: rest-client
@@ -146,10 +146,12 @@ files:
146
146
  - lib/paperlex/base/sub_object.rb
147
147
  - lib/paperlex/contract/responses.rb
148
148
  - lib/paperlex/contract/review_sessions.rb
149
+ - lib/paperlex/contract/signatures.rb
149
150
  - lib/paperlex/contract/signers.rb
150
151
  - lib/paperlex/contract/versions.rb
151
152
  - lib/paperlex/contract.rb
152
153
  - lib/paperlex/review_session.rb
154
+ - lib/paperlex/signature.rb
153
155
  - lib/paperlex/signer.rb
154
156
  - lib/paperlex/slaw/versions.rb
155
157
  - lib/paperlex/slaw.rb