rightsignature-railstyle 1.1.9
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 +7 -0
- data/.gitignore +8 -0
- data/CONTRIBUTING.md +26 -0
- data/Gemfile +2 -0
- data/README.md +443 -0
- data/Rakefile +2 -0
- data/lib/rightsignature.rb +15 -0
- data/lib/rightsignature/account.rb +37 -0
- data/lib/rightsignature/connection.rb +207 -0
- data/lib/rightsignature/connection/oauth_connection.rb +109 -0
- data/lib/rightsignature/connection/token_connection.rb +36 -0
- data/lib/rightsignature/document.rb +333 -0
- data/lib/rightsignature/errors.rb +51 -0
- data/lib/rightsignature/helpers/normalizing.rb +137 -0
- data/lib/rightsignature/helpers/refine_hash_to_indifferent_access.rb +23 -0
- data/lib/rightsignature/rails_style.rb +89 -0
- data/lib/rightsignature/template.rb +299 -0
- data/lib/rightsignature/version.rb +3 -0
- data/rightsignature-api.gemspec +26 -0
- data/spec/account_spec.rb +54 -0
- data/spec/api_token_connection_spec.rb +27 -0
- data/spec/configuration_spec.rb +98 -0
- data/spec/connection_spec.rb +224 -0
- data/spec/document_spec.rb +301 -0
- data/spec/errors_spec.rb +153 -0
- data/spec/normalizing_spec.rb +85 -0
- data/spec/oauth_connnection_spec.rb +143 -0
- data/spec/rails_style_spec.rb +331 -0
- data/spec/spec_helper.rb +12 -0
- data/spec/template_spec.rb +408 -0
- metadata +143 -0
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,12 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'rspec'
|
3
|
+
|
4
|
+
require File.dirname(__FILE__) + '/../lib/rightsignature'
|
5
|
+
|
6
|
+
RSpec.configure do |c|
|
7
|
+
c.mock_with :rspec
|
8
|
+
|
9
|
+
c.before(:each) do
|
10
|
+
@rs = RightSignature::Connection.new({:consumer_key => "Consumer123", :consumer_secret => "Secret098", :access_token => "AccessToken098", :access_secret => "AccessSecret123", :api_token => "APITOKEN"})
|
11
|
+
end
|
12
|
+
end
|
@@ -0,0 +1,408 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/spec_helper.rb'
|
2
|
+
|
3
|
+
describe RightSignature::Template do
|
4
|
+
describe "templates_list" do
|
5
|
+
it "should GET /api/templates.xml" do
|
6
|
+
@rs.should_receive(:get).with('/api/templates.xml', {})
|
7
|
+
@rs.templates_list
|
8
|
+
end
|
9
|
+
|
10
|
+
it "should pass search options to /api/templates.xml" do
|
11
|
+
@rs.should_receive(:get).with('/api/templates.xml', {:search => "search", :page => 2})
|
12
|
+
@rs.templates_list(:search => "search", :page => 2)
|
13
|
+
end
|
14
|
+
|
15
|
+
it "should convert tags array of mixed strings and hashes into into normalized Tag string" do
|
16
|
+
@rs.should_receive(:get).with('/api/templates.xml', {:tags => "hello,abc:def,there"})
|
17
|
+
@rs.templates_list(:tags => ["hello", {"abc" => "def"}, "there"])
|
18
|
+
end
|
19
|
+
|
20
|
+
it "should keep tags as string if :tags is a string" do
|
21
|
+
@rs.should_receive(:get).with('/api/templates.xml', {:tags => "voice,no:way,microphone"})
|
22
|
+
@rs.templates_list(:tags => "voice,no:way,microphone")
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
describe "template_details" do
|
27
|
+
it "should GET /api/templates/MYGUID.xml" do
|
28
|
+
@rs.should_receive(:get).with('/api/templates/MYGUID.xml', {})
|
29
|
+
@rs.template_details('MYGUID')
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
describe "prepackage" do
|
34
|
+
it "should POST /api/templates/MYGUID/prepackage.xml" do
|
35
|
+
@rs.should_receive(:post).with('/api/templates/MYGUID/prepackage.xml', {})
|
36
|
+
@rs.prepackage('MYGUID')
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
|
41
|
+
describe "prepackage_and_send" do
|
42
|
+
it "should POST /api/templates/GUID123/prepackage.xml and POST /api/templates.xml using guid, and subject from prepackage response" do
|
43
|
+
@rs.should_receive(:post).with('/api/templates/GUID123/prepackage.xml',
|
44
|
+
{}
|
45
|
+
).and_return({"template" => {
|
46
|
+
"guid" => "a_123985_1z9v8pd654",
|
47
|
+
"subject" => "subject template",
|
48
|
+
"message" => "Default message here"
|
49
|
+
}})
|
50
|
+
@rs.should_receive(:post).with('/api/templates.xml', {:template => {
|
51
|
+
:guid => "a_123985_1z9v8pd654",
|
52
|
+
:action => "send",
|
53
|
+
:subject => "sign me",
|
54
|
+
:roles => []
|
55
|
+
}})
|
56
|
+
@rs.prepackage_and_send("GUID123", [], {:subject => "sign me"})
|
57
|
+
end
|
58
|
+
|
59
|
+
it "should default subject to one in Template prepackage response" do
|
60
|
+
@rs.should_receive(:post).with('/api/templates/GUID123/prepackage.xml',
|
61
|
+
{}
|
62
|
+
).and_return({"template" => {
|
63
|
+
"guid" => "a_123985_1z9v8pd654",
|
64
|
+
"subject" => "subject template",
|
65
|
+
"message" => "Default message here"
|
66
|
+
}})
|
67
|
+
@rs.should_receive(:post).with('/api/templates.xml', {:template => {
|
68
|
+
:guid => "a_123985_1z9v8pd654",
|
69
|
+
:action => "send",
|
70
|
+
:subject => "subject template",
|
71
|
+
:roles => []
|
72
|
+
}})
|
73
|
+
@rs.prepackage_and_send("GUID123", [])
|
74
|
+
end
|
75
|
+
end
|
76
|
+
|
77
|
+
describe "prefill/send_template" do
|
78
|
+
it "should POST /api/templates.xml with action of 'prefill', MYGUID guid, roles, and \"sign me\" subject in template hash" do
|
79
|
+
@rs.should_receive(:post).with('/api/templates.xml', {:template => {:guid => "MYGUID", :action => "prefill", :subject => "sign me", :roles => []}})
|
80
|
+
@rs.prefill("MYGUID", "sign me", [])
|
81
|
+
end
|
82
|
+
|
83
|
+
it "should add \"@role_name\"=>'Employee' key to roles in xml hash" do
|
84
|
+
@rs.should_receive(:post).with('/api/templates.xml', {
|
85
|
+
:template => {
|
86
|
+
:guid => "MYGUID",
|
87
|
+
:action => "prefill",
|
88
|
+
:subject => "sign me",
|
89
|
+
:roles => [
|
90
|
+
{:role => {
|
91
|
+
:name => "John Employee",
|
92
|
+
:email => "john@employee.com",
|
93
|
+
"@role_name" => "Employee"
|
94
|
+
}}
|
95
|
+
]
|
96
|
+
}
|
97
|
+
})
|
98
|
+
@rs.prefill("MYGUID", "sign me", [{"Employee" => {:name => "John Employee", :email => "john@employee.com"}}])
|
99
|
+
end
|
100
|
+
|
101
|
+
it "should add \"@role_id\"=>'signer_A' key to roles in xml hash" do
|
102
|
+
@rs.should_receive(:post).with('/api/templates.xml', {
|
103
|
+
:template => {
|
104
|
+
:guid => "MYGUID",
|
105
|
+
:action => "prefill",
|
106
|
+
:subject => "sign me",
|
107
|
+
:roles => [
|
108
|
+
{:role => {
|
109
|
+
:name => "John Employee",
|
110
|
+
:email => "john@employee.com",
|
111
|
+
"@role_id" => "signer_A"
|
112
|
+
}}
|
113
|
+
]
|
114
|
+
}
|
115
|
+
})
|
116
|
+
@rs.prefill("MYGUID", "sign me", [{"signer_A" => {:name => "John Employee", :email => "john@employee.com"}}])
|
117
|
+
end
|
118
|
+
|
119
|
+
describe "optional options" do
|
120
|
+
it "should add \"@merge_field_name\"=>'Tax_id' key to merge_fields in xml hash" do
|
121
|
+
@rs.should_receive(:post).with('/api/templates.xml', {
|
122
|
+
:template => {
|
123
|
+
:guid => "MYGUID",
|
124
|
+
:action => "prefill",
|
125
|
+
:subject => "sign me",
|
126
|
+
:roles => [
|
127
|
+
],
|
128
|
+
:merge_fields => [{:merge_field => {:value => "123456", "@merge_field_name" => "Tax_id"}}]
|
129
|
+
}
|
130
|
+
})
|
131
|
+
@rs.prefill("MYGUID", "sign me", [], {:merge_fields => [{"Tax_id" => "123456"}]})
|
132
|
+
end
|
133
|
+
|
134
|
+
it "should add \"@merge_field_id\"=>'123_abc_78' key to merge_fields in xml hash" do
|
135
|
+
@rs.should_receive(:post).with('/api/templates.xml', {
|
136
|
+
:template => {
|
137
|
+
:guid => "MYGUID",
|
138
|
+
:action => "prefill",
|
139
|
+
:subject => "sign me",
|
140
|
+
:roles => [
|
141
|
+
],
|
142
|
+
:merge_fields => [{:merge_field => {:value => "123456", "@merge_field_id" => "123_abc_78"}}]
|
143
|
+
}
|
144
|
+
})
|
145
|
+
@rs.prefill("MYGUID", "sign me", [], {:merge_fields => [{"123_abc_78" => "123456"}], :use_merge_field_ids => true})
|
146
|
+
end
|
147
|
+
|
148
|
+
it "should add \"tag\" key to tags in xml hash" do
|
149
|
+
@rs.should_receive(:post).with('/api/templates.xml', {
|
150
|
+
:template => {
|
151
|
+
:guid => "MYGUID",
|
152
|
+
:action => "prefill",
|
153
|
+
:subject => "sign me",
|
154
|
+
:roles => [],
|
155
|
+
:tags => [{:tag => {:name => "I_Key", :value => "I_Value"}}, {:tag => {:name => "Alone"}}]
|
156
|
+
}
|
157
|
+
})
|
158
|
+
@rs.prefill("MYGUID", "sign me", [], {:tags => [{"I_Key" => "I_Value"}, "Alone"]})
|
159
|
+
end
|
160
|
+
|
161
|
+
it "should include options :expires_in, :description, :redirect_location, :document_data, and :callback_location" do
|
162
|
+
@rs.should_receive(:post).with('/api/templates.xml', {
|
163
|
+
:template => {
|
164
|
+
:guid => "MYGUID",
|
165
|
+
:action => "prefill",
|
166
|
+
:subject => "sign me",
|
167
|
+
:roles => [],
|
168
|
+
:expires_in => 15,
|
169
|
+
:description => "Hey, I'm a description",
|
170
|
+
:redirect_location => 'http://example.com/redirectme',
|
171
|
+
:document_data => {:type => 'base64', :filename => "originalfile.pdf", :value => "mOio90cv"},
|
172
|
+
:callback_location => 'http://example.com/callie'
|
173
|
+
}
|
174
|
+
})
|
175
|
+
@rs.prefill("MYGUID", "sign me", [], {:expires_in => 15, :description => "Hey, I'm a description", :redirect_location => 'http://example.com/redirectme', :callback_location => "http://example.com/callie", :document_data => {:type => 'base64', :filename => "originalfile.pdf", :value => "mOio90cv"}})
|
176
|
+
end
|
177
|
+
|
178
|
+
it "should include extra options" do
|
179
|
+
@rs.should_receive(:post).with('/api/templates.xml', {
|
180
|
+
:template => {
|
181
|
+
:guid => "MYGUID",
|
182
|
+
:action => "prefill",
|
183
|
+
:subject => "sign me",
|
184
|
+
:roles => [
|
185
|
+
{:role => {
|
186
|
+
:name => "John Employee",
|
187
|
+
:email => "john@employee.com",
|
188
|
+
"@role_id" => "signer_A"
|
189
|
+
}}],
|
190
|
+
:expires_in => 15,
|
191
|
+
:description => "Hey, I'm a description",
|
192
|
+
:redirect_location => 'http://example.com/redirectme',
|
193
|
+
:document_data => {:type => 'base64', :filename => "originalfile.pdf", :value => "mOio90cv"},
|
194
|
+
:callback_location => 'http://example.com/callie',
|
195
|
+
:something_else => "else",
|
196
|
+
:merge_fields => [{:merge_field => {:value => "123456", "@merge_field_id" => "123_abc_78"}}]
|
197
|
+
}
|
198
|
+
})
|
199
|
+
@rs.prefill("MYGUID", "sign me", [{"signer_A" => {:name => "John Employee", :email => "john@employee.com"}}], {:expires_in => 15, :description => "Hey, I'm a description", :redirect_location => 'http://example.com/redirectme', :callback_location => "http://example.com/callie", :document_data => {:type => 'base64', :filename => "originalfile.pdf", :value => "mOio90cv"}, :merge_fields => [{"123_abc_78" => "123456"}], :use_merge_field_ids => true, :something_else => "else"})
|
200
|
+
end
|
201
|
+
end
|
202
|
+
|
203
|
+
it "should POST /api/templates.xml with action of 'send', MYGUID guid, roles, and \"sign me\" subject in template hash" do
|
204
|
+
@rs.should_receive(:post).with('/api/templates.xml', {:template => {:guid => "MYGUID", :action => "send", :subject => "sign me", :roles => []}})
|
205
|
+
@rs.send_template("MYGUID", "sign me", [])
|
206
|
+
end
|
207
|
+
end
|
208
|
+
|
209
|
+
describe "generate_build_url" do
|
210
|
+
it "should POST /api/templates/generate_build_token.xml" do
|
211
|
+
@rs.should_receive(:post).with("/api/templates/generate_build_token.xml", {:template => {}}).and_return({"token"=>{"redirect_token" => "REDIRECT_TOKEN"}})
|
212
|
+
@rs.generate_build_url
|
213
|
+
end
|
214
|
+
|
215
|
+
it "should return https://rightsignature.com/builder/new?rt=REDIRECT_TOKEN" do
|
216
|
+
@rs.should_receive(:post).with("/api/templates/generate_build_token.xml", {:template => {}}).and_return({"token"=>{"redirect_token" => "REDIRECT_TOKEN"}})
|
217
|
+
@rs.generate_build_url.should == "#{@rs.site}/builder/new?rt=REDIRECT_TOKEN"
|
218
|
+
end
|
219
|
+
|
220
|
+
describe "options" do
|
221
|
+
it "should include normalized :acceptable_merge_field_names in params" do
|
222
|
+
@rs.should_receive(:post).with("/api/templates/generate_build_token.xml", {:template =>
|
223
|
+
{:acceptable_merge_field_names =>
|
224
|
+
[
|
225
|
+
{:name => "Site ID"},
|
226
|
+
{:name => "Starting City"}
|
227
|
+
]}
|
228
|
+
}).and_return({"token"=>{"redirect_token" => "REDIRECT_TOKEN"}})
|
229
|
+
@rs.generate_build_url(:acceptable_merge_field_names => ["Site ID", "Starting City"])
|
230
|
+
end
|
231
|
+
|
232
|
+
it "should include normalized :acceptable_role_names, in params" do
|
233
|
+
@rs.should_receive(:post).with("/api/templates/generate_build_token.xml", {:template =>
|
234
|
+
{:acceptable_role_names =>
|
235
|
+
[
|
236
|
+
{:name => "Http Monster"},
|
237
|
+
{:name => "Party Monster"}
|
238
|
+
]}
|
239
|
+
}).and_return({"token"=>{"redirect_token" => "REDIRECT_TOKEN"}})
|
240
|
+
@rs.generate_build_url(:acceptable_role_names => ["Http Monster", "Party Monster"])
|
241
|
+
end
|
242
|
+
|
243
|
+
it "should include normalized :tags in params" do
|
244
|
+
@rs.should_receive(:post).with("/api/templates/generate_build_token.xml", {:template =>
|
245
|
+
{:tags =>
|
246
|
+
[
|
247
|
+
{:tag => {:name => "Site"}},
|
248
|
+
{:tag => {:name => "Starting City", :value => "NY"}}
|
249
|
+
]}
|
250
|
+
}).and_return({"token"=>{"redirect_token" => "REDIRECT_TOKEN"}})
|
251
|
+
@rs.generate_build_url(:tags => ["Site", "Starting City" => "NY"])
|
252
|
+
end
|
253
|
+
|
254
|
+
it "should include :callback_location and :redirect_location in params" do
|
255
|
+
@rs.should_receive(:post).with("/api/templates/generate_build_token.xml", {:template => {
|
256
|
+
:callback_location => "http://example.com/done_signing",
|
257
|
+
:redirect_location => "http://example.com/come_back_here"
|
258
|
+
}}).and_return({"token"=>{"redirect_token" => "REDIRECT_TOKEN"}})
|
259
|
+
|
260
|
+
@rs.generate_build_url(:callback_location => "http://example.com/done_signing", :redirect_location => "http://example.com/come_back_here")
|
261
|
+
end
|
262
|
+
|
263
|
+
it "should include other extra options in params" do
|
264
|
+
@rs.should_receive(:post).with("/api/templates/generate_build_token.xml", {:template => {
|
265
|
+
:tags =>
|
266
|
+
[
|
267
|
+
{:tag => {:name => "Site"}}
|
268
|
+
],
|
269
|
+
:acceptable_merge_field_names =>
|
270
|
+
[
|
271
|
+
{:name => "Site ID"},
|
272
|
+
{:name => "Starting City"}
|
273
|
+
],
|
274
|
+
:acceptable_role_names =>
|
275
|
+
[
|
276
|
+
{:name => "Http Party"}
|
277
|
+
],
|
278
|
+
:callback_location => "http://example.com/done_signing",
|
279
|
+
:redirect_location => "http://example.com/come_back_here",
|
280
|
+
:extras => "stuff here"
|
281
|
+
}}).and_return({"token"=>{"redirect_token" => "REDIRECT_TOKEN"}})
|
282
|
+
|
283
|
+
@rs.generate_build_url(:tags => ["Site"], :acceptable_merge_field_names => ["Site ID", "Starting City"], :acceptable_role_names => ["Http Party"], :callback_location => "http://example.com/done_signing", :redirect_location => "http://example.com/come_back_here", :extras => "stuff here")
|
284
|
+
end
|
285
|
+
end
|
286
|
+
end
|
287
|
+
|
288
|
+
describe "send_as_self_signers" do
|
289
|
+
before do
|
290
|
+
@prepackage_response = {"template"=>{
|
291
|
+
"type"=>"Document",
|
292
|
+
"guid"=>"a_123_456",
|
293
|
+
"created_at"=>"2012-09-25T14:51:44-07:00",
|
294
|
+
"filename"=>"assets-363-demo_document.pdf",
|
295
|
+
"size"=>"14597",
|
296
|
+
"content_type"=>"pdf",
|
297
|
+
"page_count"=>"1",
|
298
|
+
"subject"=>"subject template",
|
299
|
+
"message"=>"Default message here",
|
300
|
+
"tags"=>"template_id:31,user:1",
|
301
|
+
"processing_state"=>"done-processing",
|
302
|
+
"roles"=>
|
303
|
+
{"role"=>
|
304
|
+
[{"role"=>"Document Sender",
|
305
|
+
"name"=>"Document Sender",
|
306
|
+
"must_sign"=>"false",
|
307
|
+
"document_role_id"=>"cc_A",
|
308
|
+
"is_sender"=>"true"},
|
309
|
+
{"role"=>"Leasee",
|
310
|
+
"name"=>"Leasee",
|
311
|
+
"must_sign"=>"true",
|
312
|
+
"document_role_id"=>"signer_A",
|
313
|
+
"is_sender"=>"false"},
|
314
|
+
{"role"=>"Leaser",
|
315
|
+
"name"=>"Leaser",
|
316
|
+
"must_sign"=>"true",
|
317
|
+
"document_role_id"=>"signer_B",
|
318
|
+
"is_sender"=>"true"}]},
|
319
|
+
"merge_fields"=>nil,
|
320
|
+
"pages"=>
|
321
|
+
{"page"=>
|
322
|
+
{"page_number"=>"1",
|
323
|
+
"original_template_guid"=>"GUID123",
|
324
|
+
"original_template_filename"=>"demo_document.pdf"}
|
325
|
+
},
|
326
|
+
"thumbnail_url"=>
|
327
|
+
"https%3A%2F%2Fs3.amazonaws.com%3A443%2Frightsignature.com%2Fassets%2F1464%2Fabcde_p1_t.png%3FSignature%3D1234AC",
|
328
|
+
"redirect_token"=>
|
329
|
+
"123456bcde"
|
330
|
+
}}
|
331
|
+
|
332
|
+
@sent_document_response = {"document"=> {
|
333
|
+
"status"=>"sent",
|
334
|
+
"guid"=>"ABCDEFGH123"
|
335
|
+
}}
|
336
|
+
|
337
|
+
end
|
338
|
+
|
339
|
+
it "should prepackage template, send template with reciepents with noemail@rightsignature.com and return self-signer links" do
|
340
|
+
@rs.should_receive(:post).with('/api/templates/TGUID/prepackage.xml',
|
341
|
+
{}
|
342
|
+
).and_return(@prepackage_response)
|
343
|
+
@rs.should_receive(:post).with('/api/templates.xml', {:template => {
|
344
|
+
:guid => "a_123_456",
|
345
|
+
:action => "send",
|
346
|
+
:subject => "subject template",
|
347
|
+
:roles => [
|
348
|
+
{:role => {:name => "John Bellingham", :email => "noemail@rightsignature.com", "@role_name" => "Leasee"}},
|
349
|
+
{:role => {:name => "Tim Else", :email => "noemail@rightsignature.com", "@role_name" => "Leaser"}}
|
350
|
+
]
|
351
|
+
}}).and_return(@sent_document_response)
|
352
|
+
@rs.should_receive(:get).with("/api/documents/ABCDEFGH123/signer_links.xml", {}).and_return({"document" => {
|
353
|
+
"signer_links" => {"signer_link" => [
|
354
|
+
{"name" => "John Bellingham", "role" => "signer_A", "signer_token" => "slkfj2"},
|
355
|
+
{"name" => "Tim Else", "role" => "signer_B", "signer_token" => "asfd1"}
|
356
|
+
]}
|
357
|
+
}})
|
358
|
+
|
359
|
+
|
360
|
+
results = @rs.send_as_embedded_signers("TGUID", [
|
361
|
+
{"Leasee" => {:name => "John Bellingham"}},
|
362
|
+
{"Leaser" => {:name => "Tim Else"}}
|
363
|
+
])
|
364
|
+
results.size.should == 2
|
365
|
+
results.include?({"name" => "John Bellingham", "url" => "#{@rs.site}/signatures/embedded?rt=slkfj2"})
|
366
|
+
results.include?({"name" => "Tim Else", "url" => "#{@rs.site}/signatures/embedded?rt=asfd1"})
|
367
|
+
end
|
368
|
+
|
369
|
+
it "should not overwrite email if one is already set for receipient" do
|
370
|
+
@rs.should_receive(:post).with('/api/templates/TGUID/prepackage.xml',
|
371
|
+
{}
|
372
|
+
).and_return(@prepackage_response)
|
373
|
+
@rs.should_receive(:post).with('/api/templates.xml', {:template => {
|
374
|
+
:guid => "a_123_456",
|
375
|
+
:action => "send",
|
376
|
+
:subject => "subject template",
|
377
|
+
:roles => [
|
378
|
+
{:role => {:name => "John Bellingham", :email => "dontchange@example.com", "@role_name" => "Leasee"}},
|
379
|
+
{:role => {:name => "Tim Else", :email => "noemail@rightsignature.com", "@role_name" => "Leaser"}}
|
380
|
+
]
|
381
|
+
}}).and_return(@sent_document_response)
|
382
|
+
@rs.should_receive(:get).with("/api/documents/ABCDEFGH123/signer_links.xml", {}).and_return({"document" => {
|
383
|
+
"signer_links" => {"signer_link" => [
|
384
|
+
{"name" => "John Bellingham", "email" => "dontchange@example.com", "role" => "signer_A", "signer_token" => "slkfj2"},
|
385
|
+
{"name" => "Tim Else", "role" => "signer_B", "signer_token" => "asfd1"}
|
386
|
+
]}
|
387
|
+
}})
|
388
|
+
|
389
|
+
results = @rs.send_as_embedded_signers("TGUID", [
|
390
|
+
{"Leasee" => {:name => "John Bellingham", :email => "dontchange@example.com"}},
|
391
|
+
{"Leaser" => {:name => "Tim Else"}}
|
392
|
+
])
|
393
|
+
results.size.should == 2
|
394
|
+
results.include?({"name" => "John Bellingham", "url" => "#{@rs.site}/signatures/embedded?rt=slkfj2"})
|
395
|
+
results.include?({"name" => "Tim Else", "url" => "#{@rs.site}/signatures/embedded?rt=asfd1"})
|
396
|
+
end
|
397
|
+
|
398
|
+
it "should pass in options"
|
399
|
+
end
|
400
|
+
|
401
|
+
describe "trash" do
|
402
|
+
it "should DELETE /api/templates/MYGUID.xml" do
|
403
|
+
expect(@rs).to receive(:delete).with('/api/templates/MYGUID.xml')
|
404
|
+
@rs.trash_template('MYGUID')
|
405
|
+
end
|
406
|
+
end
|
407
|
+
|
408
|
+
end
|
metadata
ADDED
@@ -0,0 +1,143 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: rightsignature-railstyle
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.1.9
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Nick Barone
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2017-03-21 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: bundler
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: 1.0.0
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: 1.0.0
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rspec
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 2.11.0
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: 2.11.0
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: oauth
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: 0.4.0
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: 0.4.0
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: httparty
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: 0.9.0
|
62
|
+
type: :runtime
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: 0.9.0
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: xml-fu
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: 0.2.0
|
76
|
+
type: :runtime
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: 0.2.0
|
83
|
+
description: Provides a wrapper for the RightSignature API.
|
84
|
+
email:
|
85
|
+
- ''
|
86
|
+
executables: []
|
87
|
+
extensions: []
|
88
|
+
extra_rdoc_files: []
|
89
|
+
files:
|
90
|
+
- ".gitignore"
|
91
|
+
- CONTRIBUTING.md
|
92
|
+
- Gemfile
|
93
|
+
- README.md
|
94
|
+
- Rakefile
|
95
|
+
- lib/rightsignature.rb
|
96
|
+
- lib/rightsignature/account.rb
|
97
|
+
- lib/rightsignature/connection.rb
|
98
|
+
- lib/rightsignature/connection/oauth_connection.rb
|
99
|
+
- lib/rightsignature/connection/token_connection.rb
|
100
|
+
- lib/rightsignature/document.rb
|
101
|
+
- lib/rightsignature/errors.rb
|
102
|
+
- lib/rightsignature/helpers/normalizing.rb
|
103
|
+
- lib/rightsignature/helpers/refine_hash_to_indifferent_access.rb
|
104
|
+
- lib/rightsignature/rails_style.rb
|
105
|
+
- lib/rightsignature/template.rb
|
106
|
+
- lib/rightsignature/version.rb
|
107
|
+
- rightsignature-api.gemspec
|
108
|
+
- spec/account_spec.rb
|
109
|
+
- spec/api_token_connection_spec.rb
|
110
|
+
- spec/configuration_spec.rb
|
111
|
+
- spec/connection_spec.rb
|
112
|
+
- spec/document_spec.rb
|
113
|
+
- spec/errors_spec.rb
|
114
|
+
- spec/normalizing_spec.rb
|
115
|
+
- spec/oauth_connnection_spec.rb
|
116
|
+
- spec/rails_style_spec.rb
|
117
|
+
- spec/spec_helper.rb
|
118
|
+
- spec/template_spec.rb
|
119
|
+
homepage: http://github.com/narfanator/rightsignature-api
|
120
|
+
licenses:
|
121
|
+
- MIT
|
122
|
+
metadata: {}
|
123
|
+
post_install_message:
|
124
|
+
rdoc_options: []
|
125
|
+
require_paths:
|
126
|
+
- lib
|
127
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - ">="
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: '0'
|
132
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
133
|
+
requirements:
|
134
|
+
- - ">="
|
135
|
+
- !ruby/object:Gem::Version
|
136
|
+
version: '0'
|
137
|
+
requirements: []
|
138
|
+
rubyforge_project:
|
139
|
+
rubygems_version: 2.6.8
|
140
|
+
signing_key:
|
141
|
+
specification_version: 4
|
142
|
+
summary: API wrapper for RightSignature
|
143
|
+
test_files: []
|