signnow 0.0.3 → 0.0.5

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 (2) hide show
  1. data/lib/signnow.rb +107 -20
  2. metadata +17 -1
@@ -1,44 +1,131 @@
1
+ # This gem is not officially provided by SignNow.com. This gem was created by Mike Simmons.
2
+ # Official documentaion to the SignNow API is availalbe at
3
+ # https://signnow.atlassian.net/wiki/dashboard.action
4
+ # Ruby implemntation of the SignNow API
5
+ #
6
+ # [Important Notes:]
7
+ # Before you can use the SignNow API you have to recieve an API key (encoded_client_credentials) from SignNow.
8
+ #
9
+ # Get Your key at http://developers.signnow.com/
10
+ #
11
+ # [Example:]
12
+ # > require 'signnow'
13
+ #
14
+ # > r = \Signnow.create_user(YOUR_ENCODED_CLIENT_CREDENTIALS, 'first', 'last', 'a1@xyz.com', 'password')
15
+ #
16
+ # <HTTParty::Response:0x7fff240525c8 parsed_response={"expires_in"=>2592000, "token_type"=>"bearer", "access_token"=>"7e36842d6d3494877f6ff0fbbb131fcf04134c6cf0d9581b9bf13f6ac4f2a69a", "refresh_token"=>"92554b4fe792313bdf604f362ca4373d8d390b00acb6cbfb949bc4b619448654", "scope"=>"*", "id"=>"05a309627dd45114c9b874f2479b4335bb010835"}, @response=#<Net::HTTPOK 200 OK readbody=true>, @headers={"date"=>["Tue, 28 May 2013 02:10:12 GMT"], "server"=>["Apache/2.2.15 (CentOS)"], "x-powered-by"=>["PHP/5.3.3"], "access-control-allow-origin"=>["*"], "access-control-allow-headers"=>["Authorization"], "content-type"=>["application/json; charset=utf-8"], "set-cookie"=>["admin=lee56sfigb3cs0fk484sr3ci26; expires=Tue, 28-May-2013 03:10:12 GMT; path=/"], "connection"=>["close"], "transfer-encoding"=>["chunked"]}> </tt>
17
+ #
18
+ # > r.keys
19
+ # \=> ["expires_in", "token_type", "access_token", "refresh_token", "scope", "id"]
20
+ #
21
+ # > r.values
22
+ # \=> [2592000, "bearer", "1553698ece6e803886db1416bd043f9cd6ab79285620f3ed8f4ef1292c334745", "9bf640a692c4c1b6be34d9f28522344e8c902305e0e403ab65797d6f682f62a6", "*", "18fd5850a48b2433429c0dca832a7ed3faf604d0"]
23
+ #
24
+ # \>> \r["access_token"]
25
+ #
26
+ # \=> "7e36842d6d3494877f6ff0fbbb131fcf04134c6cf0d9581b9bf13f6ac4f2a69a"
27
+
28
+
1
29
  class Signnow
2
- include HTTMultiParty
30
+
31
+ require 'httmultiparty'
32
+ include HTTMultiParty
33
+
3
34
  ssl_version :SSLv3
4
35
  base_uri "https://capi-eval.signnow.com/api"
5
- headers "Authorization" => "Basic MGZjY2RiYzczNTgxY2EwZjliZjhjMzc5ZTZhOTY4MTM6MzcxOWExMjRiY2ZjMDNjNTM0ZDRmNWMwNWI1YTE5NmI="
6
-
7
- def initialize ()
8
- end
9
36
 
10
- def self.request_token (user_email, password)
11
- response = post("/oauth2/token", :body =>"username=#{user_email}&password=#{password}&grant_type=password")
37
+ # creates a new user by ENCODED_CLIENT_CREDENTIALS
38
+ # (encoded_client_credentials, first_name, last_name, email, password='basicpass')
39
+ # --- if no password is specified "basicpass" will be used
40
+
41
+ def self.create_user(encoded_client_credentials, first_name, last_name, email, password='basicpass')
42
+ self.headers "Authorization" => "Basic " + encoded_client_credentials
43
+ response = post("/user", :body => "{\"first_name\":\"#{first_name}\",\"last_name\":\"#{last_name}\",\"email\":\"#{email}\",\"password\":\"#{password}\"}")
12
44
  return response
13
45
  end
14
46
 
15
- def self.get_file_list(access_credential, options={})
16
- self.headers "Authorization" => "Bearer " + access_credential
17
- response = get("/user/documentsv2")
47
+ # creates a new user by an access_token
48
+ # (access_token, first_name, last_name, email, password='basicpass')
49
+ # --- if no password is specified "basicpass" will be used
50
+
51
+ def self.create_referenced_user (access_token, first_name, last_name, email, password='basicpass')
52
+ #creates a new user by an access_token
53
+ self.headers "Authorization" => "Bearer " + access_token
54
+ response = post("/user", :body => "{\"first_name\":\"#{first_name}\",\"last_name\":\"#{last_name}\",\"email\":\"#{email}\",\"password\":\"#{password}\"}")
18
55
  return response
19
56
  end
20
57
 
21
- def self.create_user_account (access_credential, email, password, first_name, last_name)
22
- self.headers "Authorization" => "Bearer " + access_credential
23
- response = post("/user", :body => "{\"first_name\":\"#{first_name}\",\"last_name\":\"#{last_name}\",\"email\":\"#{email}\",\"password\":\"#{password}\"}")
58
+ # Request an access token for a user
59
+ # (encoded_client_credentials, user_email, password)
60
+ def self.request_token (encoded_client_credentials, user_email, password)
61
+ self.headers "Authorization" => "Basic " + encoded_client_credentials
62
+ response = post("/oauth2/token", :body =>"username=#{user_email}&password=#{password}&grant_type=password")
63
+ return response
64
+ end
65
+
66
+ # Verify an access token for a user
67
+ # (access_token)
68
+ def self.verify_token(access_token)
69
+ self.headers "Authorization" => "Bearer " + access_token
70
+ response = get('/oauth2/token')
24
71
  return response
25
72
  end
26
73
 
27
- def self.create_document (access_credential, file)
28
- self.headers "Authorization" => "Bearer " + access_credential
74
+ # Retrieve a user resource
75
+ # (access_token)
76
+ def self.retrieve_user(access_token)
77
+ self.headers "Authorization" => "Bearer " + access_token
78
+ response = get('/user')
79
+ return response
80
+ end
81
+
82
+ # Uploads a file
83
+ # (access_token, file)
84
+ def self.create_document (access_token, file)
85
+ self.headers "Authorization" => "Bearer " + access_token
29
86
  response = post("/document", :body => {:file => File.new(file)})
30
87
  return response
31
88
  end
32
89
 
33
- def self.find_user (access_credential)
34
- self.headers "Authorization" => "Bearer " + access_credential
35
- response = get("/user")
90
+
91
+ # Retrieve a list of the user’s documents
92
+ # (access_token)
93
+ def self.get_file_list(access_token)
94
+ self.headers "Authorization" => "Bearer " + access_token
95
+ response = get("/user/documentsv2")
36
96
  return response
37
97
  end
38
- def self.invite_signer(access_credential, from_email, to_email, document_id)
39
- self.headers "Authorization" => "Bearer " + access_credential
98
+
99
+ # Retrieve a document resource
100
+ # (access_token, document_id)
101
+ def self.get_document(access_token, document_id)
102
+ self.headers "Authorization" => "Bearer " + access_token
103
+ response = get("/document/#{document_id}")
104
+ end
105
+
106
+ # Download a document
107
+ # (access_token, document_id)
108
+ def self.download_document(access_token, document_id)
109
+ self.headers "Authorization" => "Bearer " + access_token
110
+ response = get("/document/#{document_id}/download?type=collapsed")
111
+ return response
112
+ end
113
+
114
+ # Create an invite to sign a document
115
+ # (access_token, from_email, to_email, document_id)
116
+ def self.invite_signer(access_token, from_email, to_email, document_id)
117
+ self.headers "Authorization" => "Bearer " + access_token
40
118
  response = post("/document/#{document_id}/invite", :body => "{\"from\":\"#{from_email}\",\"to\":\"#{to_email}\"}")
41
119
  return response
42
120
  end
43
121
 
122
+ # Create a notary invite to sign a document
123
+ # (access_token, from_email, to_email, document_id, originator_pay=true)
124
+
125
+ def self.invite_notary(access_token, from_email, to_email, document_id, originator_pay=true)
126
+ self.headers "Authorization" => "Bearer " + access_token
127
+ response = post("/notaryinvite", :body => "{\"from\":\"#{from_email}\",\"to\":\"#{to_email}\",\"document_id\":\"#{document_id}\",\"originator_pay\":#{originator_pay}}")
128
+ return response
129
+ end
130
+
44
131
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: signnow
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.5
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -27,6 +27,22 @@ dependencies:
27
27
  - - ! '>='
28
28
  - !ruby/object:Gem::Version
29
29
  version: 0.3.10
30
+ - !ruby/object:Gem::Dependency
31
+ name: httmultiparty
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
37
+ version: 0.3.10
38
+ type: :development
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: 0.3.10
30
46
  description: A ruby implementation of the signnow API
31
47
  email: nearmars@gmail.com
32
48
  executables: []