hellosign-api 1.0.0

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.
Files changed (75) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +19 -0
  3. data/.rspec +2 -0
  4. data/.travis.yml +15 -0
  5. data/CONTRIBUTING.md +42 -0
  6. data/Gemfile +13 -0
  7. data/Guardfile +14 -0
  8. data/LICENSE +21 -0
  9. data/README.md +112 -0
  10. data/Rakefile +16 -0
  11. data/hellosign-api.gemspec +54 -0
  12. data/lib/hello_sign/.error.rb.swp +0 -0
  13. data/lib/hello_sign/api/account.rb +78 -0
  14. data/lib/hello_sign/api/api_app.rb +121 -0
  15. data/lib/hello_sign/api/bulk_send_job.rb +62 -0
  16. data/lib/hello_sign/api/embedded.rb +68 -0
  17. data/lib/hello_sign/api/oauth.rb +95 -0
  18. data/lib/hello_sign/api/signature_request.rb +691 -0
  19. data/lib/hello_sign/api/team.rb +107 -0
  20. data/lib/hello_sign/api/template.rb +227 -0
  21. data/lib/hello_sign/api/unclaimed_draft.rb +328 -0
  22. data/lib/hello_sign/api.rb +31 -0
  23. data/lib/hello_sign/client.rb +372 -0
  24. data/lib/hello_sign/configuration.rb +78 -0
  25. data/lib/hello_sign/error.rb +99 -0
  26. data/lib/hello_sign/resource/account.rb +43 -0
  27. data/lib/hello_sign/resource/api_app.rb +43 -0
  28. data/lib/hello_sign/resource/base_resource.rb +73 -0
  29. data/lib/hello_sign/resource/bulk_send_job.rb +43 -0
  30. data/lib/hello_sign/resource/embedded.rb +43 -0
  31. data/lib/hello_sign/resource/resource_array.rb +56 -0
  32. data/lib/hello_sign/resource/signature_request.rb +43 -0
  33. data/lib/hello_sign/resource/team.rb +43 -0
  34. data/lib/hello_sign/resource/template.rb +43 -0
  35. data/lib/hello_sign/resource/template_draft.rb +44 -0
  36. data/lib/hello_sign/resource/unclaimed_draft.rb +44 -0
  37. data/lib/hello_sign/resource.rb +33 -0
  38. data/lib/hello_sign/version.rb +25 -0
  39. data/lib/hello_sign.rb +50 -0
  40. data/lib/hellosign-ruby-sdk.rb +4 -0
  41. data/spec/fixtures/account.json +15 -0
  42. data/spec/fixtures/api_app.json +16 -0
  43. data/spec/fixtures/api_apps.json +43 -0
  44. data/spec/fixtures/bulk_send_job.json +88 -0
  45. data/spec/fixtures/bulk_send_jobs.json +22 -0
  46. data/spec/fixtures/embedded.json +6 -0
  47. data/spec/fixtures/empty.pdf +0 -0
  48. data/spec/fixtures/error.json +6 -0
  49. data/spec/fixtures/file.json +0 -0
  50. data/spec/fixtures/headers.json +18 -0
  51. data/spec/fixtures/nda.pdf +0 -0
  52. data/spec/fixtures/signature_request.json +45 -0
  53. data/spec/fixtures/signature_requests.json +44 -0
  54. data/spec/fixtures/team.json +15 -0
  55. data/spec/fixtures/template.json +53 -0
  56. data/spec/fixtures/templates.json +59 -0
  57. data/spec/fixtures/token.json +14 -0
  58. data/spec/fixtures/unclaimed_draft.json +6 -0
  59. data/spec/hello_sign/.error_spec.rb.swp +0 -0
  60. data/spec/hello_sign/api/account_spec.rb +42 -0
  61. data/spec/hello_sign/api/api_app_spec.rb +104 -0
  62. data/spec/hello_sign/api/bulk_send_job_spec.rb +53 -0
  63. data/spec/hello_sign/api/embedded_spec.rb +23 -0
  64. data/spec/hello_sign/api/oauth_spec.rb +27 -0
  65. data/spec/hello_sign/api/signature_request_spec.rb +268 -0
  66. data/spec/hello_sign/api/team_spec.rb +101 -0
  67. data/spec/hello_sign/api/template_spec.rb +172 -0
  68. data/spec/hello_sign/api/unclaimed_draft_spec.rb +145 -0
  69. data/spec/hello_sign/client_spec.rb +191 -0
  70. data/spec/hello_sign/error_spec.rb +10 -0
  71. data/spec/hello_sign/resource/base_resource_spec.rb +53 -0
  72. data/spec/hello_sign_spec.rb +57 -0
  73. data/spec/scenarios/uploads_spec.rb +19 -0
  74. data/spec/spec_helper.rb +104 -0
  75. metadata +261 -0
@@ -0,0 +1,73 @@
1
+ # The MIT License (MIT)
2
+ #
3
+ # Copyright (C) 2014 hellosign.com
4
+ #
5
+ # Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ # of this software and associated documentation files (the "Software"), to deal
7
+ # in the Software without restriction, including without limitation the rights
8
+ # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ # copies of the Software, and to permit persons to whom the Software is
10
+ # furnished to do so, subject to the following conditions:
11
+ #
12
+ # The above copyright notice and this permission notice shall be included in all
13
+ # copies or substantial portions of the Software.
14
+ #
15
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ # SOFTWARE.
22
+
23
+ module HelloSign
24
+ module Resource
25
+ # Stores the value of a hash. Use missing_method to create method to access it like an object
26
+ #
27
+ # @author [hellosign]
28
+
29
+ class BaseResource
30
+
31
+ attr_reader :data, :raw_data, :warnings, :headers
32
+
33
+ # Converts hash data recursively into BaseResource.
34
+ #
35
+ # @param hash [Hash] Data of the resource
36
+ # @param key [String] (nil) Key of the hash, point to where resource data is. If nil, then the hash itself.
37
+ #
38
+ # @return [HelloSign::Resource::BaseResource] a new BaseResource
39
+ def initialize(hash, key=nil)
40
+ @headers = hash[:headers]
41
+ @raw_data = key ? hash[:body][key] : hash
42
+ if hash[:body]
43
+ @warnings = hash[:body]['warnings'] ? hash[:body]['warnings'] : nil
44
+ end
45
+
46
+ @data = @raw_data.inject({}) do |data, (key, value)|
47
+ data[key.to_s] = if value.is_a? Hash
48
+ value = BaseResource.new(value)
49
+ elsif ((value.is_a? Array) && (value[0].is_a? Hash))
50
+ value = value.map {|v| BaseResource.new(v)}
51
+ else
52
+ value
53
+ end
54
+ data
55
+ end
56
+ end
57
+
58
+ # Magic method, gives class dynamic methods based on hash keys.
59
+ # If initialized hash has a key which matches the method name, return value of that key.
60
+ # Otherwise, return nil.
61
+ #
62
+ # @param method [Symbol] Method's name
63
+ #
64
+ # @example
65
+ # resource = BaseResource.new email_address: "me@example.com"
66
+ # resource.email_address => "me@example.com"
67
+ # resource.not_in_hash_keys => nil
68
+ def method_missing(method)
69
+ @data.key?(method.to_s) ? @data[method.to_s] : nil
70
+ end
71
+ end
72
+ end
73
+ end
@@ -0,0 +1,43 @@
1
+ # The MIT License (MIT)
2
+ #
3
+ # Copyright (C) 2014 hellosign.com
4
+ #
5
+ # Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ # of this software and associated documentation files (the "Software"), to deal
7
+ # in the Software without restriction, including without limitation the rights
8
+ # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ # copies of the Software, and to permit persons to whom the Software is
10
+ # furnished to do so, subject to the following conditions:
11
+ #
12
+ # The above copyright notice and this permission notice shall be included in all
13
+ # copies or substantial portions of the Software.
14
+ #
15
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ # SOFTWARE.
22
+
23
+ module HelloSign
24
+ module Resource
25
+ # Contains information about a BulkSendJob.
26
+ # Take a look at our API Documentation on BulkSendJobs (https://app.hellosign.com/api/reference#BulkSendJob)
27
+ # for more information about this.
28
+ #
29
+ # @author [hellosign]
30
+
31
+ class BulkSendJob < BaseResource
32
+
33
+ # Creates a new BulkSendJob from a hash. If a key is defined then account data with be the value of hash[key], otherwise the hash itself.
34
+ # @param hash [Hash] BulkSendJob's data
35
+ # @param key [String] (bulk_send_job) Key of the hash, point to where BulkSendJob data is. If nil, then the hash itself.
36
+ #
37
+ # @return [HelloSign::Resource::BulkSendJob] a BulkSendJob
38
+ def initialize(hash, key='bulk_send_job')
39
+ super
40
+ end
41
+ end
42
+ end
43
+ end
@@ -0,0 +1,43 @@
1
+ # The MIT License (MIT)
2
+ #
3
+ # Copyright (C) 2014 hellosign.com
4
+ #
5
+ # Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ # of this software and associated documentation files (the "Software"), to deal
7
+ # in the Software without restriction, including without limitation the rights
8
+ # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ # copies of the Software, and to permit persons to whom the Software is
10
+ # furnished to do so, subject to the following conditions:
11
+ #
12
+ # The above copyright notice and this permission notice shall be included in all
13
+ # copies or substantial portions of the Software.
14
+ #
15
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ # SOFTWARE.
22
+
23
+ module HelloSign
24
+ module Resource
25
+ # Contains information about Embedded workflows.
26
+ # Take a look at our Embedded Signing Walkthrough (https://app.hellosign.com/api/embeddedSigningWalkthrough)
27
+ # for more information about this.
28
+ #
29
+ # @author [hellosign]
30
+
31
+ class Embedded < BaseResource
32
+
33
+ # Creates a new Embedded resource from a hash. If a key is defined then embedded data with be the value of hash[key], otherwise the hash itself.
34
+ # @param hash [Hash] Embedded's data
35
+ # @param key [String] (embedded) Key of the hash, point to where Embedded data is. If nil, then the hash itself.
36
+ #
37
+ # @return [HelloSign::Resource::Embedded] an Embedded resource
38
+ def initialize(hash, key='embedded')
39
+ super
40
+ end
41
+ end
42
+ end
43
+ end
@@ -0,0 +1,56 @@
1
+ # The MIT License (MIT)
2
+ #
3
+ # Copyright (C) 2014 hellosign.com
4
+ #
5
+ # Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ # of this software and associated documentation files (the "Software"), to deal
7
+ # in the Software without restriction, including without limitation the rights
8
+ # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ # copies of the Software, and to permit persons to whom the Software is
10
+ # furnished to do so, subject to the following conditions:
11
+ #
12
+ # The above copyright notice and this permission notice shall be included in all
13
+ # copies or substantial portions of the Software.
14
+ #
15
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ # SOFTWARE.
22
+
23
+ module HelloSign
24
+ module Resource
25
+ # Stores an array of HelloSign BaseResource with paging information
26
+ #
27
+ # @author [hellosign]
28
+
29
+ class ResourceArray < Array
30
+ attr_reader :page, :num_pages, :num_results, :page_size, :warnings, :headers, :list_info, :data
31
+
32
+ # Creates a new ResourceArray from a hash
33
+ #
34
+ # @param hash [Hash] Data of the array.
35
+ # @param key [String] Key of the hash, point to where resource array data is.
36
+ # @param resource_class [Class] a ResourceClass object inherited from BaseResource. Uses the created array item from hash[key].
37
+ #
38
+ # @return [HelloSign::Resource::ResourceArray] a ResourceArray
39
+ def initialize(hash, key, resource_class)
40
+ @headers = hash[:headers]
41
+ @data = hash[:body]
42
+ @list_info = hash[:body]['list_info']
43
+ @page = @list_info['page']
44
+ @num_pages = @list_info['num_pages']
45
+ @num_results = @list_info['num_results']
46
+ @page_size = @list_info['page_size']
47
+ @warnings = hash[:body]['warnings'] ? hash[:body]['warnings'] : nil
48
+ self << resource_class.new(hash[:body], nil)
49
+
50
+ hash[key] && hash[key].each do |resource|
51
+ self << resource_class.new(resource, nil)
52
+ end
53
+ end
54
+ end
55
+ end
56
+ end
@@ -0,0 +1,43 @@
1
+ # The MIT License (MIT)
2
+ #
3
+ # Copyright (C) 2014 hellosign.com
4
+ #
5
+ # Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ # of this software and associated documentation files (the "Software"), to deal
7
+ # in the Software without restriction, including without limitation the rights
8
+ # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ # copies of the Software, and to permit persons to whom the Software is
10
+ # furnished to do so, subject to the following conditions:
11
+ #
12
+ # The above copyright notice and this permission notice shall be included in all
13
+ # copies or substantial portions of the Software.
14
+ #
15
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ # SOFTWARE.
22
+
23
+ module HelloSign
24
+ module Resource
25
+ # Contains information about a SignatureRequest.
26
+ # Take a look at our API Documentation for Signature Requests (https://app.hellosign.com/api/reference#SignatureRequest)
27
+ # for more information about this.
28
+ #
29
+ # @author [hellosign]
30
+
31
+ class SignatureRequest < BaseResource
32
+
33
+ # Creates a new SignatureRequest from a hash. If a key is defined then account data with be the value of hash[key], otherwise the hash itself.
34
+ # @param hash [Hash] SignatureRequest's data
35
+ # @param key [String] (signature_request) Key of the hash, point to where SignatureRequest data is. If nil, then the hash itself.
36
+ #
37
+ # @return [HelloSign::Resource::SignatureRequest] a SignatureRequest
38
+ def initialize(hash, key='signature_request')
39
+ super
40
+ end
41
+ end
42
+ end
43
+ end
@@ -0,0 +1,43 @@
1
+ # The MIT License (MIT)
2
+ #
3
+ # Copyright (C) 2014 hellosign.com
4
+ #
5
+ # Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ # of this software and associated documentation files (the "Software"), to deal
7
+ # in the Software without restriction, including without limitation the rights
8
+ # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ # copies of the Software, and to permit persons to whom the Software is
10
+ # furnished to do so, subject to the following conditions:
11
+ #
12
+ # The above copyright notice and this permission notice shall be included in all
13
+ # copies or substantial portions of the Software.
14
+ #
15
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ # SOFTWARE.
22
+
23
+ module HelloSign
24
+ module Resource
25
+ # Contains information about a Team and its members.
26
+ # Take a look at our API Documentation on the Team Resource (https://app.hellosign.com/api/reference#Team)
27
+ # for more information about this.
28
+ #
29
+ # @author [hellosign]
30
+
31
+ class Team < BaseResource
32
+
33
+ # Creates a new Team from a hash. If a key is defined then team data with be the value of hash[key], otherwise the hash itself.
34
+ # @param hash [Hash] Team's data
35
+ # @param key [String] (team) Key of the hash, point to where Team data is. If nil, then the hash itself.
36
+ #
37
+ # @return [HelloSign::Resource::Team] a Team
38
+ def initialize(hash, key='team')
39
+ super
40
+ end
41
+ end
42
+ end
43
+ end
@@ -0,0 +1,43 @@
1
+ # The MIT License (MIT)
2
+ #
3
+ # Copyright (C) 2014 hellosign.com
4
+ #
5
+ # Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ # of this software and associated documentation files (the "Software"), to deal
7
+ # in the Software without restriction, including without limitation the rights
8
+ # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ # copies of the Software, and to permit persons to whom the Software is
10
+ # furnished to do so, subject to the following conditions:
11
+ #
12
+ # The above copyright notice and this permission notice shall be included in all
13
+ # copies or substantial portions of the Software.
14
+ #
15
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ # SOFTWARE.
22
+
23
+ module HelloSign
24
+ module Resource
25
+ # Contains information about Templates.
26
+ # Take a look at our API Documentation for Templates (https://app.hellosign.com/api/reference#Template)
27
+ # for more information about this.
28
+ #
29
+ # @author [hellosign]
30
+
31
+ class Template < BaseResource
32
+
33
+ # Creates a new Template from a hash. If a key is defined then Template data will be the value of hash[key], otherwise the hash itself.
34
+ # @param hash [Hash] Template's data
35
+ # @param key [String] (template) Key of the hash, point to where Template data is. If nil, then the hash itself.
36
+ #
37
+ # @return [HelloSign::Resource::Template] a Template
38
+ def initialize(hash, key='template')
39
+ super
40
+ end
41
+ end
42
+ end
43
+ end
@@ -0,0 +1,44 @@
1
+ # The MIT License (MIT)
2
+ #
3
+ # Copyright (C) 2014 hellosign.com
4
+ #
5
+ # Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ # of this software and associated documentation files (the "Software"), to deal
7
+ # in the Software without restriction, including without limitation the rights
8
+ # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ # copies of the Software, and to permit persons to whom the Software is
10
+ # furnished to do so, subject to the following conditions:
11
+ #
12
+ # The above copyright notice and this permission notice shall be included in all
13
+ # copies or substantial portions of the Software.
14
+ #
15
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ # SOFTWARE.
22
+
23
+ module HelloSign
24
+ module Resource
25
+ # Contains information about a TemplateDraft.
26
+ # Take a look at our API Documentation for Templates (https://app.hellosign.com/api/reference#Template)
27
+ # for more information about this.
28
+ #
29
+ # @author [hellosign]
30
+
31
+ class TemplateDraft < BaseResource
32
+
33
+ # Creates a new TemplateDraft from a hash. If a key is defined then TemplateDraft data will be the value of hash[key], otherwise the hash itself.
34
+ # @param hash [Hash] TemplateDraft's data
35
+ # @param key [String] (template_draft) Key of the hash, point to where TemplateDraft data is. If nil, then the hash itself.
36
+ #
37
+ # @return [HelloSign::Resource::TemplateDraft] a TemplateDraft
38
+ def initialize(hash, key='template')
39
+ super
40
+ end
41
+ end
42
+
43
+ end
44
+ end
@@ -0,0 +1,44 @@
1
+ # The MIT License (MIT)
2
+ #
3
+ # Copyright (C) 2014 hellosign.com
4
+ #
5
+ # Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ # of this software and associated documentation files (the "Software"), to deal
7
+ # in the Software without restriction, including without limitation the rights
8
+ # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ # copies of the Software, and to permit persons to whom the Software is
10
+ # furnished to do so, subject to the following conditions:
11
+ #
12
+ # The above copyright notice and this permission notice shall be included in all
13
+ # copies or substantial portions of the Software.
14
+ #
15
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ # SOFTWARE.
22
+
23
+ module HelloSign
24
+ module Resource
25
+ # Contains information about an UnclaimedDraft.
26
+ # Take a look at our API documentation for the UnclaimedDraft resource (https://app.hellosign.com/api/reference#UnclaimedDraft)
27
+ # for more information about this.
28
+ #
29
+ # @author [hellosign]
30
+
31
+ class UnclaimedDraft < BaseResource
32
+
33
+ # Creates a new UnclaimedDraft from a hash. If a key is defined then UnclaimedDraft data with be the value of hash[key], otherwise the hash itself.
34
+ # @param hash [Hash] UnclaimedDraft's data
35
+ # @param key [String] (unclaimed_draft) Key of the hash, point to where UnclaimedDraft data is. If nil, then the hash itself.
36
+ #
37
+ # @return [HelloSign::Resource::UnclaimedDraft] an UnclaimedDraft
38
+ def initialize(hash, key='unclaimed_draft')
39
+ super
40
+ end
41
+ end
42
+
43
+ end
44
+ end
@@ -0,0 +1,33 @@
1
+ # The MIT License (MIT)
2
+ #
3
+ # Copyright (C) 2014 hellosign.com
4
+ #
5
+ # Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ # of this software and associated documentation files (the "Software"), to deal
7
+ # in the Software without restriction, including without limitation the rights
8
+ # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ # copies of the Software, and to permit persons to whom the Software is
10
+ # furnished to do so, subject to the following conditions:
11
+ #
12
+ # The above copyright notice and this permission notice shall be included in all
13
+ # copies or substantial portions of the Software.
14
+ #
15
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ # SOFTWARE.
22
+
23
+ require 'hello_sign/resource/base_resource'
24
+ require 'hello_sign/resource/resource_array'
25
+ require 'hello_sign/resource/template_draft'
26
+ require 'hello_sign/resource/account'
27
+ require 'hello_sign/resource/embedded'
28
+ require 'hello_sign/resource/template'
29
+ require 'hello_sign/resource/signature_request'
30
+ require 'hello_sign/resource/team'
31
+ require 'hello_sign/resource/unclaimed_draft'
32
+ require 'hello_sign/resource/api_app'
33
+ require 'hello_sign/resource/bulk_send_job'
@@ -0,0 +1,25 @@
1
+ # The MIT License (MIT)
2
+ #
3
+ # Copyright (C) 2014 hellosign.com
4
+ #
5
+ # Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ # of this software and associated documentation files (the "Software"), to deal
7
+ # in the Software without restriction, including without limitation the rights
8
+ # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ # copies of the Software, and to permit persons to whom the Software is
10
+ # furnished to do so, subject to the following conditions:
11
+ #
12
+ # The above copyright notice and this permission notice shall be included in all
13
+ # copies or substantial portions of the Software.
14
+ #
15
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ # SOFTWARE.
22
+
23
+ module HelloSign
24
+ VERSION = '1.0.0'
25
+ end
data/lib/hello_sign.rb ADDED
@@ -0,0 +1,50 @@
1
+ # The MIT License (MIT)
2
+ #
3
+ # Copyright (C) 2014 hellosign.com
4
+ #
5
+ # Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ # of this software and associated documentation files (the "Software"), to deal
7
+ # in the Software without restriction, including without limitation the rights
8
+ # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ # copies of the Software, and to permit persons to whom the Software is
10
+ # furnished to do so, subject to the following conditions:
11
+ #
12
+ # The above copyright notice and this permission notice shall be included in all
13
+ # copies or substantial portions of the Software.
14
+ #
15
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ # SOFTWARE.
22
+
23
+ require 'hello_sign/version'
24
+ require 'hello_sign/configuration'
25
+ require 'hello_sign/client'
26
+
27
+ module HelloSign
28
+ extend Configuration
29
+
30
+ # If HelloSign module doesn't respond to method, then delegates it to HelloSign::Client
31
+ # @param method [Symbol] method name
32
+ # @param *args [Array] arguments passed into the method
33
+ # @param &block [Block] a block passed into the method
34
+ def self.method_missing(method, *args, &block)
35
+ return super unless client.respond_to?(method)
36
+ client.send(method, *args, &block)
37
+ end
38
+
39
+ # If HelloSign module doesn't respond to method, asks HelloSign::Client whether it responded or not
40
+ # @param method [Symbol] method name
41
+ def self.respond_to?(method, include_all=false)
42
+ return super || client.respond_to?(method)
43
+ end
44
+
45
+ private
46
+
47
+ def self.client
48
+ HelloSign::Client.new
49
+ end
50
+ end
@@ -0,0 +1,4 @@
1
+ # A wrapper that allows requiring via the Gemfile name ('hellosign-ruby-sdk')
2
+ # This allows you to require either 'hello_sign' (unchanged) or 'hellosign-ruby-sdk' in your code
3
+
4
+ require 'hello_sign'
@@ -0,0 +1,15 @@
1
+ {
2
+ "account": {
3
+ "account_id": "123456789",
4
+ "email_address": "test@example.com",
5
+ "is_paid_hs": false,
6
+ "is_paid_hf": false,
7
+ "quotas": {
8
+ "templates_left": 0,
9
+ "documents_left": 0,
10
+ "api_signature_requests_left": 0
11
+ },
12
+ "callback_url": "https://example.com",
13
+ "role_code": ""
14
+ }
15
+ }
@@ -0,0 +1,16 @@
1
+ {
2
+
3
+ "api_app": {
4
+ "client_id": "5e365c014bea2e9a05a9d0834f3e7ca4",
5
+ "created_at": 1438030211,
6
+ "name": "Hodor",
7
+ "domain": "hodor.com",
8
+ "callback_url": null,
9
+ "owner_account": {
10
+ "account_id": "626e28a7781d6d12bd830220488a45e9ef3378ab",
11
+ "email_address": "hello@example.com"
12
+ },
13
+ "is_approved": false,
14
+ "oauth": null
15
+ }
16
+ }
@@ -0,0 +1,43 @@
1
+ {
2
+ "api_apps": [
3
+ {
4
+ "callback_url": null,
5
+ "client_id": "0dd3b823a682527788c4e40cb7b6f7e9",
6
+ "created_at": 1436232339,
7
+ "domain": "example.com",
8
+ "is_approved": true,
9
+ "name": "My Production App",
10
+ "oauth": {
11
+ "callback_url": "http://example.com/oauth",
12
+ "scopes": [
13
+ "basic_account_info",
14
+ "request_signature"
15
+ ],
16
+ "secret": "98891a1b59f312d04cd88e4e0c498d75"
17
+ },
18
+ "owner_account": {
19
+ "account_id": "dc5deeb9e10b044c591ef2475aafad1d1d3bd888",
20
+ "email_address": "john@example.com"
21
+ }
22
+ },
23
+ {
24
+ "callback_url": null,
25
+ "client_id": "bff6d867fafcca27554cf89b1ca98793",
26
+ "created_at": 1433458421,
27
+ "domain": "example.com",
28
+ "is_approved": false,
29
+ "name": "My Other App",
30
+ "oauth": null,
31
+ "owner_account": {
32
+ "account_id": "dc5deeb9e10b044c591ef2475aafad1d1d3bd888",
33
+ "email_address": "john@example.com"
34
+ }
35
+ }
36
+ ],
37
+ "list_info": {
38
+ "num_pages": 1,
39
+ "num_results": 2,
40
+ "page": 1,
41
+ "page_size": 20
42
+ }
43
+ }