hellosign-ruby-sdk 3.0.18 → 3.0.19
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 +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
|