groupdocs 1.5.8 → 1.5.9

Sign up to get free protection for your applications and to get access to all the features.
Files changed (101) hide show
  1. data/CHANGELOG.md +9 -0
  2. data/examples/api-samples/public/docs/sample01.html +34 -15
  3. data/examples/api-samples/public/docs/sample02.html +36 -15
  4. data/examples/api-samples/public/docs/sample03.html +55 -34
  5. data/examples/api-samples/public/docs/sample04.html +33 -14
  6. data/examples/api-samples/public/docs/sample05.html +51 -33
  7. data/examples/api-samples/public/docs/sample06.html +86 -40
  8. data/examples/api-samples/public/docs/sample07.html +32 -13
  9. data/examples/api-samples/public/docs/sample08.html +39 -20
  10. data/examples/api-samples/public/docs/sample09.html +93 -39
  11. data/examples/api-samples/public/docs/sample10.html +39 -21
  12. data/examples/api-samples/public/docs/sample11.html +133 -88
  13. data/examples/api-samples/public/docs/sample12.html +33 -14
  14. data/examples/api-samples/public/docs/sample13.html +14 -7
  15. data/examples/api-samples/public/docs/sample14.html +37 -18
  16. data/examples/api-samples/public/docs/sample15.html +29 -10
  17. data/examples/api-samples/public/docs/sample16.html +58 -25
  18. data/examples/api-samples/public/docs/sample17.html +71 -38
  19. data/examples/api-samples/public/docs/sample18.html +98 -71
  20. data/examples/api-samples/public/docs/sample19.html +74 -42
  21. data/examples/api-samples/public/docs/sample20.html +39 -21
  22. data/examples/api-samples/public/docs/sample21.html +113 -69
  23. data/examples/api-samples/public/docs/sample22.html +89 -43
  24. data/examples/api-samples/public/docs/sample23.html +50 -32
  25. data/examples/api-samples/public/docs/sample24.html +64 -31
  26. data/examples/api-samples/public/docs/sample25.html +107 -60
  27. data/examples/api-samples/public/docs/sample26.html +29 -10
  28. data/examples/api-samples/public/docs/sample27.html +107 -61
  29. data/examples/api-samples/public/docs/sample28.html +158 -9
  30. data/examples/api-samples/public/docs/sample29.html +13 -8
  31. data/examples/api-samples/public/docs/sample30.html +34 -15
  32. data/examples/api-samples/public/docs/sample31.html +107 -76
  33. data/examples/api-samples/public/docs/sample32.html +104 -40
  34. data/examples/api-samples/public/docs/sample33.html +85 -36
  35. data/examples/api-samples/public/docs/sample34.html +30 -11
  36. data/examples/api-samples/public/docs/sample35.html +90 -27
  37. data/examples/api-samples/public/docs/sample36.html +36 -16
  38. data/examples/api-samples/public/docs/sample37.html +144 -265
  39. data/examples/api-samples/public/docs/sample38.html +113 -64
  40. data/examples/api-samples/public/docs/sample39.html +118 -45
  41. data/examples/api-samples/public/docs/sample40.html +81 -46
  42. data/examples/api-samples/public/docs/sample41.html +562 -90
  43. data/examples/api-samples/public/docs/sample42.html +94 -39
  44. data/examples/api-samples/public/docs/sample43.html +669 -0
  45. data/examples/api-samples/samples/sample01.rb +17 -10
  46. data/examples/api-samples/samples/sample02.rb +21 -12
  47. data/examples/api-samples/samples/sample03.rb +35 -29
  48. data/examples/api-samples/samples/sample04.rb +19 -12
  49. data/examples/api-samples/samples/sample05.rb +24 -17
  50. data/examples/api-samples/samples/sample06.rb +38 -32
  51. data/examples/api-samples/samples/sample07.rb +19 -12
  52. data/examples/api-samples/samples/sample08.rb +22 -15
  53. data/examples/api-samples/samples/sample09.rb +31 -29
  54. data/examples/api-samples/samples/sample10.rb +22 -15
  55. data/examples/api-samples/samples/sample11.rb +78 -81
  56. data/examples/api-samples/samples/sample12.rb +19 -21
  57. data/examples/api-samples/samples/sample13.rb +19 -21
  58. data/examples/api-samples/samples/sample14.rb +18 -12
  59. data/examples/api-samples/samples/sample15.rb +17 -10
  60. data/examples/api-samples/samples/sample16.rb +25 -17
  61. data/examples/api-samples/samples/sample17.rb +31 -23
  62. data/examples/api-samples/samples/sample18.rb +60 -55
  63. data/examples/api-samples/samples/sample19.rb +48 -42
  64. data/examples/api-samples/samples/sample20.rb +20 -13
  65. data/examples/api-samples/samples/sample21.rb +62 -54
  66. data/examples/api-samples/samples/sample22.rb +37 -31
  67. data/examples/api-samples/samples/sample23.rb +24 -17
  68. data/examples/api-samples/samples/sample24.rb +29 -22
  69. data/examples/api-samples/samples/sample25.rb +47 -40
  70. data/examples/api-samples/samples/sample26.rb +16 -9
  71. data/examples/api-samples/samples/sample27.rb +46 -39
  72. data/examples/api-samples/samples/sample28.rb +42 -11
  73. data/examples/api-samples/samples/sample29.rb +13 -8
  74. data/examples/api-samples/samples/sample30.rb +19 -12
  75. data/examples/api-samples/samples/sample31.rb +63 -58
  76. data/examples/api-samples/samples/sample32.rb +45 -42
  77. data/examples/api-samples/samples/sample33.rb +36 -25
  78. data/examples/api-samples/samples/sample34.rb +16 -9
  79. data/examples/api-samples/samples/sample35.rb +66 -53
  80. data/examples/api-samples/samples/sample36.rb +19 -15
  81. data/examples/api-samples/samples/sample37.rb +61 -99
  82. data/examples/api-samples/samples/sample38.rb +51 -43
  83. data/examples/api-samples/samples/sample39.rb +78 -62
  84. data/examples/api-samples/samples/sample40.rb +48 -38
  85. data/examples/api-samples/samples/sample41.rb +189 -67
  86. data/examples/api-samples/samples/sample42.rb +37 -29
  87. data/examples/api-samples/samples/sample43.rb +127 -0
  88. data/examples/api-samples/views/_others_samples.haml +4 -2
  89. data/examples/api-samples/views/index.haml +4 -2
  90. data/examples/api-samples/views/sample11.haml +1 -1
  91. data/examples/api-samples/views/sample28.haml +8 -0
  92. data/examples/api-samples/views/sample31.haml +1 -6
  93. data/examples/api-samples/views/sample39.haml +7 -2
  94. data/examples/api-samples/views/sample41.haml +78 -33
  95. data/examples/api-samples/views/sample42.haml +0 -1
  96. data/examples/api-samples/views/sample43.haml +91 -0
  97. data/lib/groupdocs/api/helpers/access_rights_helper.rb +6 -5
  98. data/lib/groupdocs/api/helpers/url_helper.rb +2 -1
  99. data/lib/groupdocs/document.rb +3 -3
  100. data/lib/groupdocs/version.rb +1 -1
  101. metadata +5 -2
@@ -1,17 +1,17 @@
1
- # GET request
1
+ #GET request
2
2
  get '/sample39' do
3
3
  haml :sample39
4
4
  end
5
5
 
6
- # GET request
6
+ #GET request
7
7
  get '/popup' do
8
8
  haml :popup
9
9
  end
10
10
 
11
- # POST request
11
+ #POST request
12
12
  post '/sample39/signature_callback' do
13
13
  begin
14
- # Get callback request
14
+ #Get callback request
15
15
  data = JSON.parse(request.body.read)
16
16
 
17
17
  raise 'Empty params!' if data.empty?
@@ -19,14 +19,14 @@ post '/sample39/signature_callback' do
19
19
  client_id = nil
20
20
  private_key = nil
21
21
 
22
- # Get value of SourceId
22
+ #Get value of SourceId
23
23
  data.each do |key, value|
24
24
  if key == 'SourceId'
25
25
  source_id = value
26
26
  end
27
27
  end
28
28
 
29
- # Get private key and client_id from file user_info.txt
29
+ #Get private key and client_id from file user_info.txt
30
30
  if File.exist?("#{File.dirname(__FILE__)}/../public/user_info.txt")
31
31
  contents = File.read("#{File.dirname(__FILE__)}/../public/user_info.txt")
32
32
  contents = contents.split(' ')
@@ -34,18 +34,18 @@ post '/sample39/signature_callback' do
34
34
  private_key = contents.last
35
35
  end
36
36
 
37
- # Create Job instance
37
+ #Create Job instance
38
38
  job = GroupDocs::Signature::Envelope.new({:id => source_id})
39
39
 
40
- # Get document by job id
40
+ #Get document by job id
41
41
  documents = job.documents!({}, {:client_id => client_id, :private_key => private_key}).first
42
42
 
43
- # Get guid from file
43
+ #Get guid from file
44
44
  guid = documents.file.guid
45
45
 
46
- # Create new file callback_info.txt and write the guid document
46
+ #Create new file callback_info.txt and write the guid document
47
47
  out_file = File.new("#{File.dirname(__FILE__)}/../public/callback_info.txt", 'w')
48
- # White space is required
48
+ #White space is required
49
49
  out_file.write("#{guid}")
50
50
  out_file.close
51
51
 
@@ -54,7 +54,7 @@ post '/sample39/signature_callback' do
54
54
  end
55
55
  end
56
56
 
57
- # POST request
57
+ #POST request
58
58
  post '/sample39/check' do
59
59
  begin
60
60
  result = nil
@@ -62,7 +62,7 @@ post '/sample39/check' do
62
62
  for i in 1..10
63
63
  i +=1
64
64
 
65
- # Check is downloads folder exist
65
+ #Check is downloads folder exist
66
66
  if File.exist?("#{File.dirname(__FILE__)}/../public/callback_info.txt")
67
67
  result = File.read("#{File.dirname(__FILE__)}/../public/callback_info.txt")
68
68
  if result.nil? then break end
@@ -70,7 +70,7 @@ post '/sample39/check' do
70
70
  sleep(5)
71
71
  end
72
72
 
73
- # Check result
73
+ #Check result
74
74
  if result == 'Error'
75
75
  result = "File was not found. Looks like something went wrong."
76
76
  else
@@ -83,32 +83,30 @@ post '/sample39/check' do
83
83
  end
84
84
 
85
85
 
86
- # POST request
86
+ #POST request
87
87
  post '/sample39/postdata' do
88
88
 
89
89
  data = request.body.read
90
- # Decode ajax data
90
+ #Decode ajax data
91
91
  json_post_data = JSON.parse(data);
92
- # Get Client ID
92
+ #Get Client ID
93
93
  clientId = json_post_data['userId'];
94
- # Get Private Key
94
+ #Get Private Key
95
95
  privateKey = json_post_data['privateKey'];
96
96
  #Get document for sign
97
97
  documents = json_post_data['documents'];
98
- # Get signature file
98
+ #Get signature file
99
99
  signers = json_post_data['signers'];
100
- def strict_decode64(str)
101
- str.unpack("m0").first
102
- end
103
- # Documents local path
100
+
101
+ #Documents local path
104
102
  document_path = "#{File.dirname(__FILE__)}/../public/downloads/#{documents[0]['name']}"
105
103
  signer_path = "#{File.dirname(__FILE__)}/../public/downloads/#{signers[0]['name']}.png"
106
104
 
107
- # Get base64 string
105
+ #Get base64 string
108
106
  base64_documents = documents[0]['data'].split(',').last
109
107
  base64_signers = signers[0]['data'].split(',').last
110
108
 
111
- # Write to the files decode base64 strings
109
+ #Write to the files decode base64 strings
112
110
  File.open(document_path, 'wb') do |f|
113
111
  f.write(Base64.strict_decode64(base64_documents))
114
112
  end
@@ -117,40 +115,41 @@ post '/sample39/postdata' do
117
115
  f.write(Base64.strict_decode64(base64_signers))
118
116
  end
119
117
 
120
- # Set document for signing
118
+ #Set document for signing
121
119
  documents = GroupDocs::Storage::File.new(:name=>documents[0]['name'], :local_path=>document_path).to_document
122
- # Set signature
120
+ #Set signature
123
121
  signers = GroupDocs::Signature.new(:name=>signers[0]['name'], :image_path=>signer_path)
124
122
  signers.position = {top: 0.83319, left: 0.72171, width: 100, height: 40}
125
123
 
126
- # Make request to sign documnet
124
+ #Make request to sign documnet
127
125
  signDocument = GroupDocs::Document.sign_documents!([documents], [signers], {}, {:client_id=>clientId, :private_key=>privateKey})
128
126
  sleep(5)
129
- # Get the document guid
127
+ #Get the document guid
130
128
  document = GroupDocs::Signature.sign_document_status!(signDocument, {:client_id=>clientId, :private_key=>privateKey})
131
- # Get file GUID
129
+ #Get file GUID
132
130
  guid = document.guid
133
- # Create array with result data
131
+ #Create array with result data
134
132
  result = ['guid' => guid,'clientId' => clientId,'privateKey' => privateKey]
135
- # Decode array to json and return json string to ajax request
133
+ #Decode array to json and return json string to ajax request
136
134
  result.to_json
137
135
  end
138
136
 
139
137
 
140
- # POST request
138
+ #POST request
141
139
  post '/sample39' do
142
- # set variables
140
+ #Set variables
143
141
  set :client_id, params[:clientId]
144
142
  set :private_key, params[:privateKey]
145
143
  set :name, params[:name]
146
144
  set :email, params[:email]
147
145
  set :callback, params[:callbackUrl]
148
146
  set :last_name, params[:lastName]
147
+ set :base_path, params[:basePath]
149
148
 
150
- # Set download path
149
+ #Set download path
151
150
  downloads_path = "#{File.dirname(__FILE__)}/../public/downloads"
152
151
 
153
- # Remove all files from download directory or create folder if it not there
152
+ #Remove all files from download directory or create folder if it not there
154
153
  if File.directory?(downloads_path)
155
154
  Dir.foreach(downloads_path) { |f| fn = File.join(downloads_path, f); File.delete(fn) if f != '.' && f != '..' }
156
155
  else
@@ -158,80 +157,97 @@ post '/sample39' do
158
157
  end
159
158
 
160
159
  begin
161
- # check required variables
160
+ #Check required variables
162
161
  raise 'Please enter all required parameters' if settings.client_id.empty? or settings.private_key.empty? or settings.name.empty? or settings.email.empty? or settings.last_name.empty?
163
162
 
164
- # Configure your access to API server
163
+ #Prepare base path
164
+ if settings.base_path.empty?
165
+ base_path = 'https://api.groupdocs.com'
166
+ elsif settings.base_path.match('/v2.0')
167
+ base_path = settings.base_path.split('/v2.0')[0]
168
+ else
169
+ base_path = settings.base_path
170
+ end
171
+
172
+ #Configure your access to API server
165
173
  GroupDocs.configure do |groupdocs|
166
174
  groupdocs.client_id = settings.client_id
167
175
  groupdocs.private_key = settings.private_key
176
+ #Optionally specify API server and version
177
+ groupdocs.api_server = base_path #Default is 'https://api.groupdocs.com'
178
+
168
179
  end
169
180
 
170
- # Write client and private key to the file for callback job
181
+ #Write client and private key to the file for callback job
171
182
  if settings.callback[0]
172
183
  out_file = File.new("#{File.dirname(__FILE__)}/../public/user_info.txt", 'w')
173
- # white space is required
184
+ #White space is required
174
185
  out_file.write("#{settings.client_id} ")
175
186
  out_file.write("#{settings.private_key}")
176
187
  out_file.close
177
188
  end
178
189
 
179
- # Construct path
190
+ #Construct path
180
191
  file_path = "#{Dir.tmpdir}/#{params[:file][:filename]}"
181
- # Open file
192
+ #Open file
182
193
  File.open(file_path, 'wb') { |f| f.write(params[:file][:tempfile].read) }
183
- # Make a request to API using client_id and private_key
194
+ #Make a request to API using client_id and private_key
184
195
  file = GroupDocs::Storage::File.upload!(file_path)
185
196
  document = file.to_document
186
197
 
187
198
 
188
- # create envelope using user id and entered by user name
199
+ #Create envelope using user id and entered by user name
189
200
  envelope = GroupDocs::Signature::Envelope.new
190
201
  envelope.name = file.name
191
202
  envelope.email_subject = 'Sing this!'
192
203
  envelope.create!
193
204
 
194
- # Add uploaded document to envelope
205
+ #Add uploaded document to envelope
195
206
  envelope.add_document!(document)
196
207
 
197
- # Get role list for current user
208
+ #Get role list for current user
198
209
  roles = GroupDocs::Signature::Role.get!
199
210
 
200
- # Create new recipient
211
+ #Create new recipient
201
212
  recipient = GroupDocs::Signature::Recipient.new
202
213
  recipient.email = settings.email
203
214
  recipient.first_name = settings.name
204
215
  recipient.last_name = settings.last_name
205
216
  recipient.role_id = roles.detect { |role| role.name == 'Signer' }.id
206
217
 
207
- # Add recipient to envelope
208
- add = envelope.add_recipient!(recipient)
209
-
210
- # Get recipient id
211
- recipient.id = add[:recipient][:id]
218
+ #Add recipient to envelope
219
+ recipient = envelope.add_recipient!(recipient)
212
220
 
213
- # Get document id
221
+ #Get document id
214
222
  document = envelope.documents!()
215
223
 
216
-
217
224
  # Get field and add the location to field
218
225
  field = GroupDocs::Signature::Field.get!().detect { |f| f.type == :signature }
219
226
  field.location = {:location_x => 0.15, :location_y => 0.73, :location_w => 150, :location_h => 50, :page => 1}
220
227
  field.name = 'EMPLOYEE SIGNATURE'
221
228
 
222
- # Add field to envelope
229
+ #Add field to envelope
223
230
  envelope.add_field!(field, document[0], recipient, {})
224
231
 
225
232
 
226
- # Send envelop
233
+ #Send envelop
227
234
  envelope.send!({:callbackUrl => settings.callback})
228
235
 
236
+ #Prepare to sign url
237
+ iframe = "/signature2/signembed/#{envelope.id}/#{recipient.id}"
238
+ # Construct result string
239
+ url = GroupDocs::Api::Request.new(:path => iframe).prepare_and_sign_url
240
+ #Generate iframe URL
241
+ case base_path
242
+ when 'https://stage-api-groupdocs.dynabic.com'
243
+ iframe = "https://stage-api-groupdocs.dynabic.com#{url}"
244
+ when 'https://dev-api-groupdocs.dynabic.com'
245
+ iframe = "https://dev-apps.groupdocs.com#{url}"
246
+ else
247
+ iframe = "https://apps.groupdocs.com#{url}"
248
+ end
229
249
 
230
- #Get url from request
231
- url = "https://apps.groupdocs.com/signature/signembed/#{envelope.id}/#{recipient.id}"
232
-
233
- iframe = GroupDocs::Api::Request.new(:path => url).prepare_and_sign_url
234
- # Make iframe
250
+ #Make iframe
235
251
  iframe = "<iframe id='downloadframe' src='#{iframe}' width='800' height='1000'></iframe>"
236
252
 
237
253
 
@@ -239,7 +255,7 @@ post '/sample39' do
239
255
  err = e.message
240
256
  end
241
257
 
242
- # set variables for template
258
+ #Set variables for template
243
259
  haml :sample39, :locals => {:userId => settings.client_id,
244
260
  :privateKey => settings.private_key,
245
261
  :callback => settings.callback,
@@ -1,16 +1,16 @@
1
- # GET request
1
+ #GET request
2
2
  get '/sample40' do
3
3
  haml :sample40
4
4
  end
5
5
 
6
- # POST request
6
+ #POST request
7
7
  post '/sample40/check_guid' do
8
8
  begin
9
9
  result = nil
10
10
  i = 0
11
11
  for i in 1..10
12
12
  i +=1
13
- # Check is downloads folder exist
13
+ #Check is downloads folder exist
14
14
  if File.exist?("#{File.dirname(__FILE__)}/../public/callback_info.txt")
15
15
  result = File.read("#{File.dirname(__FILE__)}/../public/callback_info.txt")
16
16
  if result != '' then break end
@@ -18,7 +18,7 @@ post '/sample40/check_guid' do
18
18
  sleep(5)
19
19
  end
20
20
 
21
- # Check result
21
+ #Check result
22
22
  if result == 'Error'
23
23
  result = "File was not found. Looks like something went wrong."
24
24
  else
@@ -31,20 +31,20 @@ post '/sample40/check_guid' do
31
31
  end
32
32
 
33
33
 
34
- # POST request
34
+ #POST request
35
35
  post '/sample40/callback' do
36
36
 
37
37
  source_id = ''
38
38
  client_id = ''
39
39
  private_key = ''
40
40
 
41
- # Get callback request
41
+ #Get callback request
42
42
  data = JSON.parse(request.body.read)
43
43
  begin
44
44
  participant = nil
45
45
  raise 'Empty params!' if data.empty?
46
46
 
47
- # Get value of SourceId
47
+ #Get value of SourceId
48
48
  data.each do |key, value|
49
49
  if key == 'SourceId'
50
50
  source_id = value
@@ -59,7 +59,7 @@ post '/sample40/callback' do
59
59
  end
60
60
  end
61
61
 
62
- # Get private key and client_id from file user_info.txt
62
+ #Get private key and client_id from file user_info.txt
63
63
  if File.exist?("#{File.dirname(__FILE__)}/../public/user_info.txt")
64
64
  contents = File.read("#{File.dirname(__FILE__)}/../public/user_info.txt")
65
65
  contents = contents.split(' ')
@@ -67,16 +67,16 @@ post '/sample40/callback' do
67
67
  private_key = contents[1]
68
68
  end
69
69
 
70
- # Create new Form
70
+ #Create new Form
71
71
  form = GroupDocs::Signature::Form.new({:id => source_id})
72
- # Create new Signature
72
+ #Create new Signature
73
73
  signature = GroupDocs::Signature.new()
74
74
  doc_info = signature.get_sign_form_participant!(form.id , participant, {:client_id => client_id, :private_key => private_key} )
75
75
 
76
76
  guid = doc_info[:documentGuid]
77
77
 
78
78
  out_file = File.new("#{File.dirname(__FILE__)}/../public/callback_info.txt", 'w')
79
- # white space is required
79
+ #White space is required
80
80
  out_file.write(guid)
81
81
  out_file.close
82
82
 
@@ -87,9 +87,9 @@ end
87
87
 
88
88
 
89
89
 
90
- # POST request
90
+ #POST request
91
91
  post '/sample40' do
92
- # set variables
92
+ #Set variables
93
93
  set :client_id, params[:clientId]
94
94
  set :private_key, params[:privateKey]
95
95
  set :form_guid, params[:formGuid]
@@ -98,23 +98,36 @@ post '/sample40' do
98
98
 
99
99
  begin
100
100
 
101
- # Check required variables
101
+ #Check required variables
102
102
  raise 'Please enter all required parameters' if settings.client_id.empty? or settings.private_key.empty? or settings.form_guid.empty?
103
103
 
104
- if settings.base_path.empty? then settings.base_path = 'https://api.groupdocs.com' end
104
+ #Delete file callback_info.txt
105
+ if File.exist?("#{File.dirname(__FILE__)}/../public/callback_info.txt")
106
+ File.delete("#{File.dirname(__FILE__)}/../public/callback_info.txt")
107
+ end
108
+
109
+ #Prepare base path
110
+ if settings.base_path.empty?
111
+ base_path = 'https://api.groupdocs.com'
112
+ elsif settings.base_path.match('/v2.0')
113
+ base_path = settings.base_path.split('/v2.0')[0]
114
+ else
115
+ base_path = settings.base_path
116
+ end
105
117
 
106
- # Configure your access to API server
118
+ #Configure your access to API server
107
119
  GroupDocs.configure do |groupdocs|
108
120
  groupdocs.client_id = settings.client_id
109
121
  groupdocs.private_key = settings.private_key
110
- # Optionally specify API server and version
111
- groupdocs.api_server = settings.base_path # default is 'https://api.groupdocs.com'
122
+ #Optionally specify API server and version
123
+ groupdocs.api_server = base_path # default is 'https://api.groupdocs.com'
124
+
112
125
  end
113
126
 
114
- # Write client and private key to the file for callback job
127
+ #Write client and private key to the file for callback job
115
128
  if settings.callback
116
129
  out_file = File.new("#{File.dirname(__FILE__)}/../public/user_info.txt", 'w')
117
- # white space is required
130
+ #White space is required
118
131
  out_file.write("#{settings.client_id} ")
119
132
  out_file.write("#{settings.private_key} ")
120
133
  out_file.close
@@ -122,40 +135,37 @@ post '/sample40' do
122
135
 
123
136
  guid = settings.form_guid
124
137
 
125
- # Create new Form with guid
138
+ #Create new Form with guid
126
139
  form = GroupDocs::Signature::Form.new()
127
140
  form.name = "Test Form"
128
- # Get id with new Form
141
+ #Get id with new Form
129
142
  id = form.create!({:formId => guid})
130
- # Get Form
143
+ #Get Form
131
144
  form = GroupDocs::Signature::Form.get!(id)
132
- # Publish the Form
145
+ #Publish the Form
133
146
  form.publish!({:callbackUrl => settings.callback})
134
147
 
135
- # Get url from request
136
- case settings.base_path
137
-
148
+ #Prepare to sign url
149
+ iframe = "//signature2/forms/signembed/#{guid}"
150
+ # Construct result string
151
+ url = GroupDocs::Api::Request.new(:path => iframe).prepare_and_sign_url
152
+ #Generate iframe URL
153
+ case base_path
138
154
  when 'https://stage-api-groupdocs.dynabic.com'
139
- url = "http://stage-apps-groupdocs.dynabic.com/signature2/forms/signembed/ #{guid}"
155
+ iframe = "https://stage-api-groupdocs.dynabic.com#{url}"
140
156
  when 'https://dev-api-groupdocs.dynabic.com'
141
- url = "http://dev-apps-groupdocs.dynabic.com/signature2/forms/signembed/ #{guid}"
157
+ iframe = "https://dev-apps.groupdocs.com#{url}"
142
158
  else
143
- url = "https://apps.groupdocs.com/signature2/forms/signembed/ #{guid}"
144
- end
145
- # Delete file callback_info.txt
146
- if File.exist?("#{File.dirname(__FILE__)}/../public/callback_info.txt")
147
- File.delete("#{File.dirname(__FILE__)}/../public/callback_info.txt")
159
+ iframe = "https://apps.groupdocs.com#{url}"
148
160
  end
149
161
 
150
- # Add the signature to url the request
151
- iframe = GroupDocs::Api::Request.new(:path => url).prepare_and_sign_url
152
- iframe = "<iframe width='100%' id='downloadframe' height='600' src='#{iframe}'></iframe>"
162
+ iframe = "<iframe src='#{iframe}' id='downloadframe' width='800' height='1000'></iframe>"
153
163
 
154
164
  rescue Exception => e
155
165
  err = e.message
156
166
  end
157
167
 
158
- # Set variables for template
168
+ #Set variables for template
159
169
  haml :sample40, :locals => {:userId => settings.client_id,
160
170
  :privateKey => settings.private_key,
161
171
  :callback => settings.callback,