hellosign-ruby-sdk 3.0.9 → 3.0.10
Sign up to get free protection for your applications and to get access to all the features.
- data/README.md +0 -2
- data/lib/hello_sign/api/embedded.rb +11 -0
- data/lib/hello_sign/api/template.rb +61 -0
- data/lib/hello_sign/api/unclaimed_draft.rb +55 -0
- data/lib/hello_sign/client.rb +9 -1
- data/lib/hello_sign/resource.rb +1 -0
- data/lib/hello_sign/resource/template_draft.rb +25 -0
- data/lib/hello_sign/version.rb +1 -1
- metadata +37 -22
- checksums.yaml +0 -7
data/README.md
CHANGED
@@ -26,8 +26,6 @@ HelloSign.configure do |config|
|
|
26
26
|
# If api_key, email_address and password are all present, api_key will be used
|
27
27
|
# config.email_address = 'email_address'
|
28
28
|
# config.password = 'password'
|
29
|
-
config.client_id = 'your_client_id' #required only when you want to use embedded or OAuth
|
30
|
-
config.client_secret = 'your_client_secret' #required only when you want to use OAuth
|
31
29
|
end
|
32
30
|
```
|
33
31
|
|
@@ -22,6 +22,17 @@ module HelloSign
|
|
22
22
|
def get_embedded_sign_url(opts)
|
23
23
|
HelloSign::Resource::Embedded.new get("/embedded/sign_url/#{opts[:signature_id]}")
|
24
24
|
end
|
25
|
+
#
|
26
|
+
# Retrieves the edit url for an embedded template.
|
27
|
+
# @option opts [String] template_id The id of the template to get a edit url for
|
28
|
+
#
|
29
|
+
# @return [HelloSign::Resource::Embedded] Returns an Embedded object
|
30
|
+
# @example
|
31
|
+
# edit_url = @client.get_embedded_template_edit_url :template_id => '39e3387f738adfa7ddd4cbd4c00d2a8ab6e4194b'
|
32
|
+
#
|
33
|
+
def get_embedded_template_edit_url(opts)
|
34
|
+
HelloSign::Resource::Embedded.new get("/embedded/edit_url/#{opts[:template_id]}")
|
35
|
+
end
|
25
36
|
end
|
26
37
|
end
|
27
38
|
end
|
@@ -23,6 +23,17 @@ module HelloSign
|
|
23
23
|
HelloSign::Resource::Template.new get("/template/#{opts[:template_id]}")
|
24
24
|
end
|
25
25
|
|
26
|
+
#
|
27
|
+
# Deletes the Template specified by the id parameter.
|
28
|
+
# @option opts [String] template_id The id of the Template to delete.
|
29
|
+
##
|
30
|
+
# @example
|
31
|
+
# template = @client.get_template :template_id => 'f57db65d3f933b5316d398057a36176831451a35'
|
32
|
+
#
|
33
|
+
def delete_template(opts)
|
34
|
+
post("/template/#{opts[:template_id]}")
|
35
|
+
end
|
36
|
+
|
26
37
|
#
|
27
38
|
# Retrieves the Templates for the current user account.
|
28
39
|
#
|
@@ -71,6 +82,56 @@ module HelloSign
|
|
71
82
|
opts.delete(:template_id)
|
72
83
|
HelloSign::Resource::Template.new post(path, :body => opts)
|
73
84
|
end
|
85
|
+
|
86
|
+
#
|
87
|
+
# Creates a new embedded template draft object that can be launched in an iframe using the claim URL.
|
88
|
+
# @option opts [Integer] test_mode (0) Whether this is a test, the signature request will not be legally binding if set to 1.
|
89
|
+
# @option opts [Array<String>] files Use files to indicate the uploaded file(s) to send for signature. Currently we only support use of either the files parameter or file_urls parameter, not both.
|
90
|
+
# @option opts [Array<String>] file_urls Use file_urls to have HelloSign download the file(s) to send for signature. Currently we only support use of either the files parameter or file_urls parameter, not both.
|
91
|
+
# @option opts [String] title The default template email subject.
|
92
|
+
# @option opts [String] subject The subject in the email that will be sent to the signers.
|
93
|
+
# @option opts [String] requester_email_address The email address of the requester.
|
94
|
+
# @option opts [String] message The custom message in the email that will be sent to the signers.
|
95
|
+
# @option opts [Array<Hash>] signers List of signer_roles, each item is a Hash with these keys:
|
96
|
+
# * :name (String) signer's role name
|
97
|
+
# * :order (Integer) The order the signer is required to sign in (optional)
|
98
|
+
# @option opts [Array<Hash>] cc_roles The email addresses CC roles. Will mean the CC role will be Required when sending the template.
|
99
|
+
# @option opts [Array<Hash>] merge_fields List of fields that can be pre-populated by your application when using the resulting template to send a signature request
|
100
|
+
# * :name (String) merge field name
|
101
|
+
# * :type (String) <text|checkbox>
|
102
|
+
#
|
103
|
+
# @example create_embedded_draft
|
104
|
+
# template_draft = @client.create_embedded_template_draft(
|
105
|
+
# :test_mode => 1,
|
106
|
+
# :subject => 'The NDA we talked about',
|
107
|
+
# :requester_email_address => requester@example.com",
|
108
|
+
# :message => 'Please sign this NDA and then we can discuss more. Let me know if you have any questions.',
|
109
|
+
# :signer_roles => [{
|
110
|
+
# :name => 'Manager',
|
111
|
+
# :order => 0
|
112
|
+
# },{
|
113
|
+
# :name => 'Client',
|
114
|
+
# :order => 1
|
115
|
+
# }
|
116
|
+
# ],
|
117
|
+
# :cc_roles => ['HRManager'],
|
118
|
+
# :files => ['NDA.pdf', 'AppendixA.pdf'],
|
119
|
+
# :merge_fields => '[{
|
120
|
+
# :name => 'contract_id',
|
121
|
+
# :type => 'text'
|
122
|
+
# },{
|
123
|
+
# :name => 'purchase_price',
|
124
|
+
# :order => 'text'
|
125
|
+
# }
|
126
|
+
# ]'
|
127
|
+
# )
|
128
|
+
#
|
129
|
+
def create_embedded_template_draft(opts)
|
130
|
+
opts[:client_id] ||= self.client_id
|
131
|
+
prepare_files opts
|
132
|
+
prepare_signer_roles opts
|
133
|
+
HelloSign::Resource::TemplateDraft.new post("/template/create_embedded_draft", :body => opts)
|
134
|
+
end
|
74
135
|
end
|
75
136
|
end
|
76
137
|
end
|
@@ -128,6 +128,61 @@ module HelloSign
|
|
128
128
|
|
129
129
|
HelloSign::Resource::UnclaimedDraft.new post('/unclaimed_draft/create_embedded', :body => opts)
|
130
130
|
end
|
131
|
+
|
132
|
+
|
133
|
+
#
|
134
|
+
# Creates a new embedded unclaimed draft object from a template that can be launched in an iframe using the claim URL.
|
135
|
+
# @option opts [Integer] test_mode (0) Whether this is a test, the signature request will not be legally binding if set to 1.
|
136
|
+
# @option opts [String] subject The subject in the email that will be sent to the signers.
|
137
|
+
# @option opts [String] requester_email_address The email address of the requester.
|
138
|
+
# @option opts [String] message The custom message in the email that will be sent to the signers.
|
139
|
+
# @option opts [String] signing_redirect_url The URL you want the signer redirected to after they successfully sign. (optional)
|
140
|
+
#
|
141
|
+
# @option opts [Array<Hash>] signers List of signers, each item is a Hash with these keys:
|
142
|
+
# * :name (String) Sender' name
|
143
|
+
# * :email_address (String) Sender's email address
|
144
|
+
# * :order (Integer) The order the signer is required to sign in (optional)
|
145
|
+
# * :pin (Integer) The 4-digit code that will secure this signer's signature page. You must have a business plan to use this feature. (optional)
|
146
|
+
# @option opts [Array<String>] cc_email_addresses The email addresses that should be CCed.
|
147
|
+
#
|
148
|
+
# @return [HelloSign::Resource::UnclaimedDraft] a UnclaimedDraft object
|
149
|
+
#
|
150
|
+
# @example request_signature
|
151
|
+
# unclaimed_draft = @client.create_embedded_unclaimed_draft_with_template(
|
152
|
+
# :test_mode => 1,
|
153
|
+
# :subject => 'The NDA we talked about',
|
154
|
+
# :template_id => 'c26b8a16784a872da37ea946b9ddec7c1e11dff6',
|
155
|
+
# :requester_email_address => requester@example.com",
|
156
|
+
# :message => 'Please sign this NDA and then we can discuss more. Let me know if you have any questions.',
|
157
|
+
# :metadata => {
|
158
|
+
# :client_id => '1234',
|
159
|
+
# :custom_text => 'NDA #9'
|
160
|
+
# },
|
161
|
+
# :signers => [
|
162
|
+
# {
|
163
|
+
# :email_address => 'george@example.com',
|
164
|
+
# :name => 'George',
|
165
|
+
# :role => 'Client'
|
166
|
+
# }
|
167
|
+
# ],
|
168
|
+
# :ccs => [
|
169
|
+
# {
|
170
|
+
# :email_address =>'accounting@example.com',
|
171
|
+
# :role => "Accounting"
|
172
|
+
# }
|
173
|
+
# ],
|
174
|
+
# :custom_fields => {
|
175
|
+
# :Cost => '$20,000'
|
176
|
+
# }
|
177
|
+
# )
|
178
|
+
#
|
179
|
+
def create_embedded_unclaimed_draft_with_template(opts)
|
180
|
+
opts[:client_id] ||= self.client_id
|
181
|
+
prepare_signers opts
|
182
|
+
prepare_ccs opts
|
183
|
+
prepare_templates opts
|
184
|
+
HelloSign::Resource::UnclaimedDraft.new post('/unclaimed_draft/create_embedded_with_template', :body => opts)
|
185
|
+
end
|
131
186
|
end
|
132
187
|
end
|
133
188
|
end
|
data/lib/hello_sign/client.rb
CHANGED
@@ -152,7 +152,7 @@ module HelloSign
|
|
152
152
|
elsif response.body.strip.empty?
|
153
153
|
{}
|
154
154
|
else
|
155
|
-
MultiJson.load response.body
|
155
|
+
MultiJson.load response.body.strip
|
156
156
|
end
|
157
157
|
end
|
158
158
|
|
@@ -196,6 +196,14 @@ module HelloSign
|
|
196
196
|
prepare opts, :template_ids
|
197
197
|
end
|
198
198
|
|
199
|
+
def prepare_cc_roles(opts)
|
200
|
+
prepare opts, :merge_fields
|
201
|
+
end
|
202
|
+
|
203
|
+
def prepare_signer_roles(opts)
|
204
|
+
prepare opts, :signer_roles
|
205
|
+
end
|
206
|
+
|
199
207
|
def prepare(opts, key)
|
200
208
|
return unless opts[key]
|
201
209
|
opts[key].each_with_index do |value, index|
|
data/lib/hello_sign/resource.rb
CHANGED
@@ -0,0 +1,25 @@
|
|
1
|
+
module HelloSign
|
2
|
+
module Resource
|
3
|
+
|
4
|
+
#
|
5
|
+
# A group of documents that a user can take ownership of by going to the claim URL
|
6
|
+
# Take a look at our {https://www.hellosign.com/api/reference}
|
7
|
+
# for more information about this.
|
8
|
+
#
|
9
|
+
# @author [hellosign]
|
10
|
+
#
|
11
|
+
class TemplateDraft < BaseResource
|
12
|
+
|
13
|
+
#
|
14
|
+
# create a new TemplateDraft from a hash. If a key is defined then template draft data will be the value of hash[key], otherwise the hash itself
|
15
|
+
# @param hash [Hash] template draft's data
|
16
|
+
# @param key [String] (template_draft) key of the hash, point to where template draft data is. If nil then the hash itself
|
17
|
+
#
|
18
|
+
# @return [HelloSign::Resource:Team] a Team resource
|
19
|
+
def initialize(hash, key='template')
|
20
|
+
super
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
end
|
25
|
+
end
|
data/lib/hello_sign/version.rb
CHANGED
metadata
CHANGED
@@ -1,97 +1,110 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: hellosign-ruby-sdk
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.0.
|
4
|
+
version: 3.0.10
|
5
|
+
prerelease:
|
5
6
|
platform: ruby
|
6
7
|
authors:
|
7
8
|
- HelloSign
|
8
9
|
autorequire:
|
9
10
|
bindir: bin
|
10
11
|
cert_chain: []
|
11
|
-
date:
|
12
|
+
date: 2015-04-13 00:00:00.000000000 Z
|
12
13
|
dependencies:
|
13
14
|
- !ruby/object:Gem::Dependency
|
14
15
|
name: bundler
|
15
16
|
requirement: !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
16
18
|
requirements:
|
17
|
-
- -
|
19
|
+
- - ~>
|
18
20
|
- !ruby/object:Gem::Version
|
19
21
|
version: '1.5'
|
20
22
|
type: :development
|
21
23
|
prerelease: false
|
22
24
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
23
26
|
requirements:
|
24
|
-
- -
|
27
|
+
- - ~>
|
25
28
|
- !ruby/object:Gem::Version
|
26
29
|
version: '1.5'
|
27
30
|
- !ruby/object:Gem::Dependency
|
28
31
|
name: rake
|
29
32
|
requirement: !ruby/object:Gem::Requirement
|
33
|
+
none: false
|
30
34
|
requirements:
|
31
|
-
- -
|
35
|
+
- - ! '>='
|
32
36
|
- !ruby/object:Gem::Version
|
33
37
|
version: '0'
|
34
38
|
type: :development
|
35
39
|
prerelease: false
|
36
40
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
37
42
|
requirements:
|
38
|
-
- -
|
43
|
+
- - ! '>='
|
39
44
|
- !ruby/object:Gem::Version
|
40
45
|
version: '0'
|
41
46
|
- !ruby/object:Gem::Dependency
|
42
47
|
name: rspec
|
43
48
|
requirement: !ruby/object:Gem::Requirement
|
49
|
+
none: false
|
44
50
|
requirements:
|
45
|
-
- -
|
51
|
+
- - ! '>='
|
46
52
|
- !ruby/object:Gem::Version
|
47
53
|
version: '0'
|
48
54
|
type: :development
|
49
55
|
prerelease: false
|
50
56
|
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
51
58
|
requirements:
|
52
|
-
- -
|
59
|
+
- - ! '>='
|
53
60
|
- !ruby/object:Gem::Version
|
54
61
|
version: '0'
|
55
62
|
- !ruby/object:Gem::Dependency
|
56
63
|
name: webmock
|
57
64
|
requirement: !ruby/object:Gem::Requirement
|
65
|
+
none: false
|
58
66
|
requirements:
|
59
|
-
- -
|
67
|
+
- - ! '>='
|
60
68
|
- !ruby/object:Gem::Version
|
61
69
|
version: '0'
|
62
70
|
type: :development
|
63
71
|
prerelease: false
|
64
72
|
version_requirements: !ruby/object:Gem::Requirement
|
73
|
+
none: false
|
65
74
|
requirements:
|
66
|
-
- -
|
75
|
+
- - ! '>='
|
67
76
|
- !ruby/object:Gem::Version
|
68
77
|
version: '0'
|
69
78
|
- !ruby/object:Gem::Dependency
|
70
79
|
name: faraday
|
71
80
|
requirement: !ruby/object:Gem::Requirement
|
81
|
+
none: false
|
72
82
|
requirements:
|
73
|
-
- -
|
83
|
+
- - ! '>='
|
74
84
|
- !ruby/object:Gem::Version
|
75
85
|
version: '0'
|
76
86
|
type: :runtime
|
77
87
|
prerelease: false
|
78
88
|
version_requirements: !ruby/object:Gem::Requirement
|
89
|
+
none: false
|
79
90
|
requirements:
|
80
|
-
- -
|
91
|
+
- - ! '>='
|
81
92
|
- !ruby/object:Gem::Version
|
82
93
|
version: '0'
|
83
94
|
- !ruby/object:Gem::Dependency
|
84
95
|
name: multi_json
|
85
96
|
requirement: !ruby/object:Gem::Requirement
|
97
|
+
none: false
|
86
98
|
requirements:
|
87
|
-
- -
|
99
|
+
- - ! '>='
|
88
100
|
- !ruby/object:Gem::Version
|
89
101
|
version: '0'
|
90
102
|
type: :runtime
|
91
103
|
prerelease: false
|
92
104
|
version_requirements: !ruby/object:Gem::Requirement
|
105
|
+
none: false
|
93
106
|
requirements:
|
94
|
-
- -
|
107
|
+
- - ! '>='
|
95
108
|
- !ruby/object:Gem::Version
|
96
109
|
version: '0'
|
97
110
|
description: ''
|
@@ -100,9 +113,9 @@ executables: []
|
|
100
113
|
extensions: []
|
101
114
|
extra_rdoc_files: []
|
102
115
|
files:
|
103
|
-
-
|
104
|
-
-
|
105
|
-
-
|
116
|
+
- .gitignore
|
117
|
+
- .rspec
|
118
|
+
- .travis.yml
|
106
119
|
- Gemfile
|
107
120
|
- Guardfile
|
108
121
|
- LICENSE.txt
|
@@ -129,6 +142,7 @@ files:
|
|
129
142
|
- lib/hello_sign/resource/signature_request.rb
|
130
143
|
- lib/hello_sign/resource/team.rb
|
131
144
|
- lib/hello_sign/resource/template.rb
|
145
|
+
- lib/hello_sign/resource/template_draft.rb
|
132
146
|
- lib/hello_sign/resource/unclaimed_draft.rb
|
133
147
|
- lib/hello_sign/version.rb
|
134
148
|
- spec/fixtures/account.json
|
@@ -156,26 +170,27 @@ files:
|
|
156
170
|
homepage: http://www.hellosign.com
|
157
171
|
licenses:
|
158
172
|
- MIT
|
159
|
-
metadata: {}
|
160
173
|
post_install_message:
|
161
174
|
rdoc_options: []
|
162
175
|
require_paths:
|
163
176
|
- lib
|
164
177
|
required_ruby_version: !ruby/object:Gem::Requirement
|
178
|
+
none: false
|
165
179
|
requirements:
|
166
|
-
- -
|
180
|
+
- - ! '>='
|
167
181
|
- !ruby/object:Gem::Version
|
168
182
|
version: '0'
|
169
183
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
184
|
+
none: false
|
170
185
|
requirements:
|
171
|
-
- -
|
186
|
+
- - ! '>='
|
172
187
|
- !ruby/object:Gem::Version
|
173
188
|
version: '0'
|
174
189
|
requirements: []
|
175
190
|
rubyforge_project:
|
176
|
-
rubygems_version:
|
191
|
+
rubygems_version: 1.8.23
|
177
192
|
signing_key:
|
178
|
-
specification_version:
|
193
|
+
specification_version: 3
|
179
194
|
summary: A Ruby SDK for the HelloSign API.
|
180
195
|
test_files:
|
181
196
|
- spec/fixtures/account.json
|
checksums.yaml
DELETED
@@ -1,7 +0,0 @@
|
|
1
|
-
---
|
2
|
-
SHA1:
|
3
|
-
metadata.gz: 9d25f5b018fddb236b999be3180ac75d09f8ac88
|
4
|
-
data.tar.gz: d999948d08a67e479010c86df94981e4d202179c
|
5
|
-
SHA512:
|
6
|
-
metadata.gz: b201a69a221b32e13f5d0c6874a885fb5ab1d84fc396f0a059704249cd4945976127994625172fef21f5781f653c79a1aca62615a326712a84b5fbff720e5375
|
7
|
-
data.tar.gz: 6ae74ea3cd74e11da0346f8c4373181120dac9317221eb51f9257b50d96d0eaed8e3619f31155a26f989e677c95ab4be9eb9f8ede74d4fc960818d6b5f75954f
|