hellosign-ruby-sdk 3.0.18 → 3.0.19
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +29 -0
- data/hellosign-ruby-sdk.gemspec +3 -2
- data/lib/hello_sign/client.rb +35 -2
- data/lib/hello_sign/error.rb +5 -2
- data/lib/hello_sign/version.rb +1 -1
- data/spec/fixtures/nda.pdf +0 -0
- data/spec/scenarios/uploads_spec.rb +3 -19
- metadata +18 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c422e4abbd97f92563383ee0e5355f4485c4b297
|
4
|
+
data.tar.gz: eedf437c54a440c11a561484b2062325a0f9ac95
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 17b9f71f60fe5e8533d83654289582cf46988cb92bf976e97733048078747247e662ce4fa1bbbef4ffe0f90456f44e61c506e65bce32f25f32153785fe3e831d
|
7
|
+
data.tar.gz: 93188013bbcb4a47dcca7886eb3ec377c38c190404a4e6b069acc700c070c5eb5ff196f7576d8d1defd8c096828bd77bb98f0f1b28b1a0d696b76a46428a2fb6
|
data/README.md
CHANGED
@@ -48,6 +48,12 @@ If you need to authenticate for multiple users and you want a separated client f
|
|
48
48
|
client2 = HelloSign::Client.new :api_key => 'your_user_api_key'
|
49
49
|
user_account = client2.get_account
|
50
50
|
```
|
51
|
+
### Specifying files
|
52
|
+
|
53
|
+
When using request endpoints that send files, such as a signature request, you can specify files either as
|
54
|
+
1. A string representing the path
|
55
|
+
2. A Ruby File Object (File.open, then assign to a variable)
|
56
|
+
3. A Rails ActionDispatch::Http::UploadedFile
|
51
57
|
|
52
58
|
##Testing
|
53
59
|
|
@@ -56,6 +62,29 @@ from the root of your project run <code>rake spec</code>.
|
|
56
62
|
|
57
63
|
## Additional notes
|
58
64
|
|
65
|
+
## Warnings
|
66
|
+
Any warnings returned from the API can be accessed by using the 'warnings' accessor on a returned object or list:
|
67
|
+
|
68
|
+
````ruby
|
69
|
+
my_signature_requests = client.get_signature_requests
|
70
|
+
puts my_signature_requests.warnings
|
71
|
+
````
|
72
|
+
|
73
|
+
and will give output of warnings in the following format (as an array of hashes):
|
74
|
+
|
75
|
+
````
|
76
|
+
[
|
77
|
+
[0] {
|
78
|
+
"warning_msg" => "Parameter hodor was ignored. Hodor.",
|
79
|
+
"warning_name" => "parameter_ignored"
|
80
|
+
},
|
81
|
+
[1] {
|
82
|
+
"warning_msg" => "Email address sirjorah@targarian.org is unconfirmed. Please pledge your allegiance to the queen first.",
|
83
|
+
"warning_name" => "unconfirmed"
|
84
|
+
}
|
85
|
+
]
|
86
|
+
````
|
87
|
+
|
59
88
|
### Local callbacks
|
60
89
|
We do not allow app callbacks (event or OAuth) to be set to localhost. However it is still possible to test callbacks against a local server. Tunneling services such as ngrok (http://ngrok.com) can help you set this up.
|
61
90
|
|
data/hellosign-ruby-sdk.gemspec
CHANGED
@@ -2,9 +2,9 @@
|
|
2
2
|
|
3
3
|
#
|
4
4
|
# The MIT License (MIT)
|
5
|
-
#
|
5
|
+
#
|
6
6
|
# Copyright (C) 2014 hellosign.com
|
7
|
-
#
|
7
|
+
#
|
8
8
|
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
9
9
|
# of this software and associated documentation files (the "Software"), to deal
|
10
10
|
# in the Software without restriction, including without limitation the rights
|
@@ -49,4 +49,5 @@ Gem::Specification.new do |spec|
|
|
49
49
|
spec.add_development_dependency 'webmock'
|
50
50
|
spec.add_runtime_dependency 'faraday'
|
51
51
|
spec.add_runtime_dependency 'multi_json'
|
52
|
+
spec.add_runtime_dependency 'mime-types'
|
52
53
|
end
|
data/lib/hello_sign/client.rb
CHANGED
@@ -24,10 +24,13 @@
|
|
24
24
|
|
25
25
|
require 'faraday'
|
26
26
|
require 'multi_json'
|
27
|
+
require 'mime/types'
|
27
28
|
require 'hello_sign/error'
|
28
29
|
require 'hello_sign/configuration'
|
29
30
|
require 'hello_sign/resource'
|
30
31
|
require 'hello_sign/api'
|
32
|
+
require 'openssl'
|
33
|
+
OpenSSL::SSL::VERIFY_PEER = OpenSSL::SSL::VERIFY_NONE
|
31
34
|
require 'logger'
|
32
35
|
|
33
36
|
module HelloSign
|
@@ -187,14 +190,44 @@ module HelloSign
|
|
187
190
|
"Message: #{response.body}"
|
188
191
|
end
|
189
192
|
|
193
|
+
def MIMEfromName(name)
|
194
|
+
parts = name.split('.')
|
195
|
+
#default to pdf if no extension
|
196
|
+
if parts.length < 2
|
197
|
+
return 'application/pdf'
|
198
|
+
end
|
199
|
+
extension = parts[-1]
|
200
|
+
types = MIME::Types.type_for(extension)
|
201
|
+
types[0]
|
202
|
+
end
|
203
|
+
|
204
|
+
def MIMEfromIO(file)
|
205
|
+
begin
|
206
|
+
path = File.path file
|
207
|
+
MIMEfromName path
|
208
|
+
# in case of error in type detection, return default type
|
209
|
+
rescue
|
210
|
+
return 'application/pdf'
|
211
|
+
end
|
212
|
+
end
|
213
|
+
|
190
214
|
def prepare_files(opts)
|
191
215
|
if opts[:files]
|
192
216
|
opts[:files].each_with_index do |file, index|
|
193
217
|
if file.is_a? String
|
194
|
-
|
218
|
+
if File.file?(file)
|
219
|
+
mime_type = MIMEfromName file
|
220
|
+
opts[:"file[#{index}]"] = Faraday::UploadIO.new(file, mime_type)
|
221
|
+
else
|
222
|
+
raise HelloSign::Error::FileNotFound.new "#{file} was not found on the filesystem"
|
223
|
+
end
|
224
|
+
elsif file.is_a? File
|
225
|
+
mime_type = MIMEfromIO file
|
226
|
+
opts[:"file[#{index}]"] = Faraday::UploadIO.new(file, mime_type)
|
195
227
|
elsif defined? ActionDispatch::Http::UploadedFile
|
196
228
|
if file.is_a? ActionDispatch::Http::UploadedFile
|
197
|
-
|
229
|
+
mime_type MIMEfromIO file
|
230
|
+
opts[:"file[#{index}]"] = UploadIO.new(file.tempfile, mime_type)
|
198
231
|
end
|
199
232
|
else
|
200
233
|
raise HelloSign::Error::NotSupportedType.new "#{file.class} is not a supported. Must be a string or ActionDispatch::Http::UploadedFile"
|
data/lib/hello_sign/error.rb
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
#
|
2
2
|
# The MIT License (MIT)
|
3
|
-
#
|
3
|
+
#
|
4
4
|
# Copyright (C) 2014 hellosign.com
|
5
|
-
#
|
5
|
+
#
|
6
6
|
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
7
7
|
# of this software and associated documentation files (the "Software"), to deal
|
8
8
|
# in the Software without restriction, including without limitation the rights
|
@@ -72,6 +72,9 @@ module HelloSign
|
|
72
72
|
# Raised when API endpoint returns the HTTP status code 503.
|
73
73
|
class NotSupportedType < Error; end
|
74
74
|
|
75
|
+
# Raised when a file attempted to be sent in a request doesn't exist
|
76
|
+
class FileNotFound < Error; end
|
77
|
+
|
75
78
|
# Raised when API endpoint returns error which is not defined in sdk.
|
76
79
|
class UnknownError < Error; end
|
77
80
|
end
|
data/lib/hello_sign/version.rb
CHANGED
Binary file
|
@@ -5,15 +5,7 @@ describe 'Uploading File' do
|
|
5
5
|
before { stub_post('/signature_request/create_embedded', 'signature_request') }
|
6
6
|
|
7
7
|
it 'works with simple pdf' do
|
8
|
-
expect(HelloSign.create_embedded_signature_request({files: [
|
9
|
-
end
|
10
|
-
|
11
|
-
it 'works with null byte string' do
|
12
|
-
expect(HelloSign.create_embedded_signature_request({files: ["\0"]}))
|
13
|
-
end
|
14
|
-
|
15
|
-
it 'works with empty string' do
|
16
|
-
expect(HelloSign.create_embedded_signature_request({files: ['']}))
|
8
|
+
expect(HelloSign.create_embedded_signature_request({files: ['spec/fixtures/nda.pdf']}))
|
17
9
|
end
|
18
10
|
end
|
19
11
|
|
@@ -21,15 +13,7 @@ describe 'Uploading File' do
|
|
21
13
|
before { stub_post('/unclaimed_draft/create', 'unclaimed_draft') }
|
22
14
|
|
23
15
|
it 'works with simple pdf' do
|
24
|
-
expect(HelloSign.create_unclaimed_draft({files: [
|
25
|
-
end
|
26
|
-
|
27
|
-
it 'works with null byte string' do
|
28
|
-
expect(HelloSign.create_unclaimed_draft({files: ["\0"]}))
|
29
|
-
end
|
30
|
-
|
31
|
-
it 'works with empty string' do
|
32
|
-
expect(HelloSign.create_unclaimed_draft({files: ['']}))
|
16
|
+
expect(HelloSign.create_unclaimed_draft({files: ['spec/fixtures/nda.pdf']}))
|
33
17
|
end
|
34
18
|
end
|
35
|
-
end
|
19
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
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.19
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- HelloSign
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-06-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -94,6 +94,20 @@ dependencies:
|
|
94
94
|
- - '>='
|
95
95
|
- !ruby/object:Gem::Version
|
96
96
|
version: '0'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: mime-types
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - '>='
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '0'
|
104
|
+
type: :runtime
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - '>='
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '0'
|
97
111
|
description: ''
|
98
112
|
email: support@hellosign.com
|
99
113
|
executables: []
|
@@ -137,6 +151,7 @@ files:
|
|
137
151
|
- spec/fixtures/empty.pdf
|
138
152
|
- spec/fixtures/error.json
|
139
153
|
- spec/fixtures/file.json
|
154
|
+
- spec/fixtures/nda.pdf
|
140
155
|
- spec/fixtures/signature_request.json
|
141
156
|
- spec/fixtures/signature_requests.json
|
142
157
|
- spec/fixtures/team.json
|
@@ -186,6 +201,7 @@ test_files:
|
|
186
201
|
- spec/fixtures/empty.pdf
|
187
202
|
- spec/fixtures/error.json
|
188
203
|
- spec/fixtures/file.json
|
204
|
+
- spec/fixtures/nda.pdf
|
189
205
|
- spec/fixtures/signature_request.json
|
190
206
|
- spec/fixtures/signature_requests.json
|
191
207
|
- spec/fixtures/team.json
|