groupdocs 1.5.7 → 1.5.8

Sign up to get free protection for your applications and to get access to all the features.
Files changed (177) hide show
  1. data/CHANGELOG.md +51 -0
  2. data/examples/api-samples/Gemfile +1 -1
  3. data/examples/api-samples/Gemfile.lock +43 -0
  4. data/examples/api-samples/public/docs/{sample2.html → sample01.html} +39 -19
  5. data/examples/api-samples/public/docs/{sample3.html → sample02.html} +28 -22
  6. data/examples/api-samples/public/docs/sample03.html +285 -0
  7. data/examples/api-samples/public/docs/{sample4.html → sample04.html} +30 -36
  8. data/examples/api-samples/public/docs/{sample5.html → sample05.html} +68 -31
  9. data/examples/api-samples/public/docs/sample06.html +299 -0
  10. data/examples/api-samples/public/docs/{sample7.html → sample07.html} +53 -18
  11. data/examples/api-samples/public/docs/{sample8.html → sample08.html} +64 -41
  12. data/examples/api-samples/public/docs/sample09.html +260 -0
  13. data/examples/api-samples/public/docs/sample10.html +67 -28
  14. data/examples/api-samples/public/docs/sample11.html +171 -55
  15. data/examples/api-samples/public/docs/sample12.html +53 -17
  16. data/examples/api-samples/public/docs/sample13.html +52 -16
  17. data/examples/api-samples/public/docs/sample14.html +51 -8
  18. data/examples/api-samples/public/docs/sample15.html +46 -10
  19. data/examples/api-samples/public/docs/sample16.html +81 -7
  20. data/examples/api-samples/public/docs/sample17.html +103 -15
  21. data/examples/api-samples/public/docs/sample18.html +117 -41
  22. data/examples/api-samples/public/docs/sample19.html +410 -36
  23. data/examples/api-samples/public/docs/sample20.html +46 -10
  24. data/examples/api-samples/public/docs/sample21.html +504 -45
  25. data/examples/api-samples/public/docs/sample22.html +166 -28
  26. data/examples/api-samples/public/docs/sample23.html +61 -25
  27. data/examples/api-samples/public/docs/sample24.html +100 -12
  28. data/examples/api-samples/public/docs/sample25.html +123 -49
  29. data/examples/api-samples/public/docs/sample26.html +41 -8
  30. data/examples/api-samples/public/docs/sample27.html +125 -50
  31. data/examples/api-samples/public/docs/sample28.html +27 -9
  32. data/examples/api-samples/public/docs/sample29.html +10 -10
  33. data/examples/api-samples/public/docs/sample30.html +70 -14
  34. data/examples/api-samples/public/docs/sample31.html +108 -67
  35. data/examples/api-samples/public/docs/sample32.html +71 -99
  36. data/examples/api-samples/public/docs/sample33.html +107 -32
  37. data/examples/api-samples/public/docs/{sample1.html → sample34.html} +58 -18
  38. data/examples/api-samples/public/docs/sample35.html +666 -0
  39. data/examples/api-samples/public/docs/{sample6.html → sample36.html} +56 -37
  40. data/examples/api-samples/public/docs/sample37.html +815 -0
  41. data/examples/api-samples/public/docs/sample38.html +508 -0
  42. data/examples/api-samples/public/docs/sample39.html +921 -0
  43. data/examples/api-samples/public/docs/sample40.html +510 -0
  44. data/examples/api-samples/public/docs/sample41.html +452 -0
  45. data/examples/api-samples/public/docs/sample42.html +311 -0
  46. data/examples/api-samples/public/templates/test_all_fields2.pdf +0 -0
  47. data/examples/api-samples/samples/sample01.rb +37 -0
  48. data/examples/api-samples/samples/sample02.rb +41 -0
  49. data/examples/api-samples/samples/sample03.rb +73 -0
  50. data/examples/api-samples/samples/sample04.rb +47 -0
  51. data/examples/api-samples/samples/{sample5.rb → sample05.rb} +26 -14
  52. data/examples/api-samples/samples/sample06.rb +80 -0
  53. data/examples/api-samples/samples/sample07.rb +52 -0
  54. data/examples/api-samples/samples/sample08.rb +69 -0
  55. data/examples/api-samples/samples/sample09.rb +83 -0
  56. data/examples/api-samples/samples/sample10.rb +29 -15
  57. data/examples/api-samples/samples/sample11.rb +89 -37
  58. data/examples/api-samples/samples/sample12.rb +22 -11
  59. data/examples/api-samples/samples/sample13.rb +22 -10
  60. data/examples/api-samples/samples/sample14.rb +23 -5
  61. data/examples/api-samples/samples/sample15.rb +18 -7
  62. data/examples/api-samples/samples/sample16.rb +28 -4
  63. data/examples/api-samples/samples/sample17.rb +31 -5
  64. data/examples/api-samples/samples/sample18.rb +36 -8
  65. data/examples/api-samples/samples/sample19.rb +138 -18
  66. data/examples/api-samples/samples/sample20.rb +14 -3
  67. data/examples/api-samples/samples/sample21.rb +162 -23
  68. data/examples/api-samples/samples/sample22.rb +73 -22
  69. data/examples/api-samples/samples/sample23.rb +17 -6
  70. data/examples/api-samples/samples/sample24.rb +34 -7
  71. data/examples/api-samples/samples/sample25.rb +37 -12
  72. data/examples/api-samples/samples/sample26.rb +12 -5
  73. data/examples/api-samples/samples/sample27.rb +38 -12
  74. data/examples/api-samples/samples/sample28.rb +25 -6
  75. data/examples/api-samples/samples/sample29.rb +12 -12
  76. data/examples/api-samples/samples/sample30.rb +27 -15
  77. data/examples/api-samples/samples/sample31.rb +44 -33
  78. data/examples/api-samples/samples/sample32.rb +43 -41
  79. data/examples/api-samples/samples/sample33.rb +42 -14
  80. data/examples/api-samples/samples/sample34.rb +40 -0
  81. data/examples/api-samples/samples/sample35.rb +224 -0
  82. data/examples/api-samples/samples/sample36.rb +58 -0
  83. data/examples/api-samples/samples/sample37.rb +229 -0
  84. data/examples/api-samples/samples/sample38.rb +128 -0
  85. data/examples/api-samples/samples/sample39.rb +252 -0
  86. data/examples/api-samples/samples/sample40.rb +164 -0
  87. data/examples/api-samples/samples/sample41.rb +118 -0
  88. data/examples/api-samples/samples/sample42.rb +97 -0
  89. data/examples/api-samples/views/_others_samples.haml +25 -11
  90. data/examples/api-samples/views/index.haml +23 -11
  91. data/examples/api-samples/views/popup.haml +32 -0
  92. data/examples/api-samples/views/{sample1.haml → sample01.haml} +12 -7
  93. data/examples/api-samples/views/{sample2.haml → sample02.haml} +20 -15
  94. data/examples/api-samples/views/sample03.haml +83 -0
  95. data/examples/api-samples/views/sample04.haml +49 -0
  96. data/examples/api-samples/views/{sample5.haml → sample05.haml} +19 -14
  97. data/examples/api-samples/views/sample06.haml +53 -0
  98. data/examples/api-samples/views/sample07.haml +47 -0
  99. data/examples/api-samples/views/{sample8.haml → sample08.haml} +17 -12
  100. data/examples/api-samples/views/{sample9.haml → sample09.haml} +19 -4
  101. data/examples/api-samples/views/sample10.haml +18 -13
  102. data/examples/api-samples/views/sample11.haml +48 -19
  103. data/examples/api-samples/views/sample12.haml +26 -21
  104. data/examples/api-samples/views/sample13.haml +18 -12
  105. data/examples/api-samples/views/sample14.haml +21 -15
  106. data/examples/api-samples/views/sample15.haml +16 -9
  107. data/examples/api-samples/views/sample16.haml +18 -5
  108. data/examples/api-samples/views/sample17.haml +14 -9
  109. data/examples/api-samples/views/sample18.haml +13 -7
  110. data/examples/api-samples/views/sample19.haml +37 -8
  111. data/examples/api-samples/views/sample20.haml +13 -8
  112. data/examples/api-samples/views/sample21.haml +71 -13
  113. data/examples/api-samples/views/sample22.haml +53 -16
  114. data/examples/api-samples/views/sample23.haml +9 -4
  115. data/examples/api-samples/views/sample24.haml +9 -4
  116. data/examples/api-samples/views/sample25.haml +18 -13
  117. data/examples/api-samples/views/sample26.haml +8 -3
  118. data/examples/api-samples/views/sample27.haml +20 -14
  119. data/examples/api-samples/views/sample28.haml +16 -10
  120. data/examples/api-samples/views/sample29.haml +4 -4
  121. data/examples/api-samples/views/sample30.haml +16 -10
  122. data/examples/api-samples/views/sample31.haml +39 -32
  123. data/examples/api-samples/views/sample32.haml +25 -36
  124. data/examples/api-samples/views/sample33.haml +14 -17
  125. data/examples/api-samples/views/sample34.haml +48 -0
  126. data/examples/api-samples/views/sample35.haml +95 -0
  127. data/examples/api-samples/views/sample36.haml +64 -0
  128. data/examples/api-samples/views/sample37.haml +124 -0
  129. data/examples/api-samples/views/sample38.haml +115 -0
  130. data/examples/api-samples/views/sample39.haml +236 -0
  131. data/examples/api-samples/views/sample40.haml +95 -0
  132. data/examples/api-samples/views/{sample4.haml → sample41.haml} +90 -72
  133. data/examples/api-samples/views/sample42.haml +59 -0
  134. data/lib/groupdocs/api/helpers/rest_helper.rb +13 -1
  135. data/lib/groupdocs/datasource.rb +2 -1
  136. data/lib/groupdocs/document.rb +101 -13
  137. data/lib/groupdocs/document/annotation.rb +28 -13
  138. data/lib/groupdocs/document/annotation/marker.rb +18 -0
  139. data/lib/groupdocs/document/annotation/reply.rb +9 -2
  140. data/lib/groupdocs/document/field.rb +5 -1
  141. data/lib/groupdocs/job.rb +12 -2
  142. data/lib/groupdocs/questionnaire.rb +174 -4
  143. data/lib/groupdocs/questionnaire/collector.rb +21 -0
  144. data/lib/groupdocs/questionnaire/question.rb +19 -0
  145. data/lib/groupdocs/questionnaire/question/answer.rb +5 -0
  146. data/lib/groupdocs/questionnaire/question/conditions.rb +20 -0
  147. data/lib/groupdocs/signature.rb +36 -308
  148. data/lib/groupdocs/signature/envelope.rb +146 -4
  149. data/lib/groupdocs/signature/field.rb +20 -1
  150. data/lib/groupdocs/signature/field/location.rb +18 -7
  151. data/lib/groupdocs/signature/form.rb +199 -10
  152. data/lib/groupdocs/signature/shared/document_methods.rb +38 -0
  153. data/lib/groupdocs/signature/shared/entity_methods.rb +0 -1
  154. data/lib/groupdocs/signature/shared/field_methods.rb +13 -38
  155. data/lib/groupdocs/signature/shared/recipient_methods.rb +8 -0
  156. data/lib/groupdocs/signature/template.rb +3 -1
  157. data/lib/groupdocs/storage.rb +4 -1
  158. data/lib/groupdocs/storage/file.rb +18 -1
  159. data/lib/groupdocs/subscription.rb +8 -3
  160. data/lib/groupdocs/user.rb +8 -0
  161. data/lib/groupdocs/version.rb +1 -1
  162. data/spec/groupdocs/document/annotation_spec.rb +1 -14
  163. data/spec/groupdocs/subscription_spec.rb +2 -2
  164. metadata +86 -32
  165. checksums.yaml +0 -15
  166. data/examples/api-samples/public/docs/sample9.html +0 -200
  167. data/examples/api-samples/samples/sample1.rb +0 -25
  168. data/examples/api-samples/samples/sample2.rb +0 -29
  169. data/examples/api-samples/samples/sample3.rb +0 -33
  170. data/examples/api-samples/samples/sample4.rb +0 -51
  171. data/examples/api-samples/samples/sample6.rb +0 -49
  172. data/examples/api-samples/samples/sample7.rb +0 -42
  173. data/examples/api-samples/samples/sample8.rb +0 -61
  174. data/examples/api-samples/samples/sample9.rb +0 -48
  175. data/examples/api-samples/views/sample3.haml +0 -44
  176. data/examples/api-samples/views/sample6.haml +0 -49
  177. data/examples/api-samples/views/sample7.haml +0 -42
@@ -0,0 +1,510 @@
1
+ <!DOCTYPE html>
2
+
3
+ <html>
4
+ <head>
5
+ <title>sample40.rb</title>
6
+ <meta http-equiv="content-type" content="text/html; charset=UTF-8">
7
+ <meta name="viewport" content="width=device-width, target-densitydpi=160dpi, initial-scale=1.0; maximum-scale=1.0; user-scalable=0;">
8
+ <link rel="stylesheet" media="all" href="docco.css" />
9
+ </head>
10
+ <body>
11
+ <div id="container">
12
+ <div id="background"></div>
13
+
14
+ <ul class="sections">
15
+
16
+ <li id="title">
17
+ <div class="annotation">
18
+ <h1>sample40.rb</h1>
19
+ </div>
20
+ </li>
21
+
22
+
23
+
24
+ <li id="section-1">
25
+ <div class="annotation">
26
+
27
+ <div class="pilwrap ">
28
+ <a class="pilcrow" href="#section-1">&#182;</a>
29
+ </div>
30
+ <p>GET request</p>
31
+
32
+ </div>
33
+
34
+ <div class="content"><div class='highlight'><pre>get <span class="string">'/sample40'</span> <span class="keyword">do</span>
35
+ haml <span class="symbol">:sample40</span>
36
+ <span class="keyword">end</span></pre></div></div>
37
+
38
+ </li>
39
+
40
+
41
+ <li id="section-2">
42
+ <div class="annotation">
43
+
44
+ <div class="pilwrap ">
45
+ <a class="pilcrow" href="#section-2">&#182;</a>
46
+ </div>
47
+ <p>POST request</p>
48
+
49
+ </div>
50
+
51
+ <div class="content"><div class='highlight'><pre>post <span class="string">'/sample40/check_guid'</span> <span class="keyword">do</span>
52
+ <span class="keyword">begin</span>
53
+ result = <span class="keyword">nil</span>
54
+ i = <span class="number">0</span>
55
+ <span class="keyword">for</span> i <span class="keyword">in</span> <span class="number">1</span>..<span class="number">10</span>
56
+ i +=<span class="number">1</span></pre></div></div>
57
+
58
+ </li>
59
+
60
+
61
+ <li id="section-3">
62
+ <div class="annotation">
63
+
64
+ <div class="pilwrap ">
65
+ <a class="pilcrow" href="#section-3">&#182;</a>
66
+ </div>
67
+ <p>Check is downloads folder exist</p>
68
+
69
+ </div>
70
+
71
+ <div class="content"><div class='highlight'><pre> <span class="keyword">if</span> <span class="constant">File</span>.exist?(<span class="string">"<span class="subst">#{<span class="constant">File</span>.dirname(__FILE_<span class="number">_</span>)}</span>/../public/callback_info.txt"</span>)
72
+ result = <span class="constant">File</span>.read(<span class="string">"<span class="subst">#{<span class="constant">File</span>.dirname(__FILE_<span class="number">_</span>)}</span>/../public/callback_info.txt"</span>)
73
+ <span class="keyword">if</span> result != <span class="string">''</span> <span class="keyword">then</span> <span class="keyword">break</span> <span class="keyword">end</span>
74
+ <span class="keyword">end</span>
75
+ sleep(<span class="number">5</span>)
76
+ <span class="keyword">end</span></pre></div></div>
77
+
78
+ </li>
79
+
80
+
81
+ <li id="section-4">
82
+ <div class="annotation">
83
+
84
+ <div class="pilwrap ">
85
+ <a class="pilcrow" href="#section-4">&#182;</a>
86
+ </div>
87
+ <p>Check result</p>
88
+
89
+ </div>
90
+
91
+ <div class="content"><div class='highlight'><pre> <span class="keyword">if</span> result == <span class="string">'Error'</span>
92
+ result = <span class="string">"File was not found. Looks like something went wrong."</span>
93
+ <span class="keyword">else</span>
94
+ result
95
+ <span class="keyword">end</span>
96
+
97
+ <span class="keyword">rescue</span> <span class="constant">Exception</span> =&gt; e
98
+ err = e.message
99
+ <span class="keyword">end</span>
100
+ <span class="keyword">end</span></pre></div></div>
101
+
102
+ </li>
103
+
104
+
105
+ <li id="section-5">
106
+ <div class="annotation">
107
+
108
+ <div class="pilwrap ">
109
+ <a class="pilcrow" href="#section-5">&#182;</a>
110
+ </div>
111
+ <p>POST request</p>
112
+
113
+ </div>
114
+
115
+ <div class="content"><div class='highlight'><pre>post <span class="string">'/sample40/callback'</span> <span class="keyword">do</span>
116
+
117
+ source_id = <span class="string">''</span>
118
+ client_id = <span class="string">''</span>
119
+ private_key = <span class="string">''</span></pre></div></div>
120
+
121
+ </li>
122
+
123
+
124
+ <li id="section-6">
125
+ <div class="annotation">
126
+
127
+ <div class="pilwrap ">
128
+ <a class="pilcrow" href="#section-6">&#182;</a>
129
+ </div>
130
+ <p>Get callback request</p>
131
+
132
+ </div>
133
+
134
+ <div class="content"><div class='highlight'><pre> data = <span class="constant">JSON</span>.parse(request.body.read)
135
+ <span class="keyword">begin</span>
136
+ participant = <span class="keyword">nil</span>
137
+ raise <span class="string">'Empty params!'</span> <span class="keyword">if</span> data.empty?</pre></div></div>
138
+
139
+ </li>
140
+
141
+
142
+ <li id="section-7">
143
+ <div class="annotation">
144
+
145
+ <div class="pilwrap ">
146
+ <a class="pilcrow" href="#section-7">&#182;</a>
147
+ </div>
148
+ <p>Get value of SourceId</p>
149
+
150
+ </div>
151
+
152
+ <div class="content"><div class='highlight'><pre> data.each <span class="keyword">do</span> |key, value|
153
+ <span class="keyword">if</span> key == <span class="string">'SourceId'</span>
154
+ source_id = value
155
+ <span class="keyword">end</span>
156
+ <span class="keyword">if</span> key == <span class="string">'SerializedData'</span>
157
+ data = <span class="constant">JSON</span>.parse(value)
158
+ data.each <span class="keyword">do</span> |key, value|
159
+ <span class="keyword">if</span> key == <span class="string">'ParticipantGuid'</span>
160
+ participant = value
161
+ <span class="keyword">end</span>
162
+ <span class="keyword">end</span>
163
+ <span class="keyword">end</span>
164
+ <span class="keyword">end</span></pre></div></div>
165
+
166
+ </li>
167
+
168
+
169
+ <li id="section-8">
170
+ <div class="annotation">
171
+
172
+ <div class="pilwrap ">
173
+ <a class="pilcrow" href="#section-8">&#182;</a>
174
+ </div>
175
+ <p>Get private key and client_id from file user_info.txt</p>
176
+
177
+ </div>
178
+
179
+ <div class="content"><div class='highlight'><pre> <span class="keyword">if</span> <span class="constant">File</span>.exist?(<span class="string">"<span class="subst">#{<span class="constant">File</span>.dirname(__FILE_<span class="number">_</span>)}</span>/../public/user_info.txt"</span>)
180
+ contents = <span class="constant">File</span>.read(<span class="string">"<span class="subst">#{<span class="constant">File</span>.dirname(__FILE_<span class="number">_</span>)}</span>/../public/user_info.txt"</span>)
181
+ contents = contents.split(<span class="string">' '</span>)
182
+ client_id = contents[<span class="number">0</span>]
183
+ private_key = contents[<span class="number">1</span>]
184
+ <span class="keyword">end</span></pre></div></div>
185
+
186
+ </li>
187
+
188
+
189
+ <li id="section-9">
190
+ <div class="annotation">
191
+
192
+ <div class="pilwrap ">
193
+ <a class="pilcrow" href="#section-9">&#182;</a>
194
+ </div>
195
+ <p>Create new Form</p>
196
+
197
+ </div>
198
+
199
+ <div class="content"><div class='highlight'><pre> form = <span class="constant">GroupDocs::Signature::Form</span>.new({<span class="symbol">:id</span> =&gt; source_id})</pre></div></div>
200
+
201
+ </li>
202
+
203
+
204
+ <li id="section-10">
205
+ <div class="annotation">
206
+
207
+ <div class="pilwrap ">
208
+ <a class="pilcrow" href="#section-10">&#182;</a>
209
+ </div>
210
+ <p>Create new Signature</p>
211
+
212
+ </div>
213
+
214
+ <div class="content"><div class='highlight'><pre> signature = <span class="constant">GroupDocs::Signature</span>.new()
215
+ doc_info = signature.get_sign_form_participant!(form.id , participant, {<span class="symbol">:client_id</span> =&gt; client_id, <span class="symbol">:private_key</span> =&gt; private_key} )
216
+
217
+ guid = doc_info[<span class="symbol">:documentGuid</span>]
218
+
219
+ out_file = <span class="constant">File</span>.new(<span class="string">"<span class="subst">#{<span class="constant">File</span>.dirname(__FILE_<span class="number">_</span>)}</span>/../public/callback_info.txt"</span>, <span class="string">'w'</span>)</pre></div></div>
220
+
221
+ </li>
222
+
223
+
224
+ <li id="section-11">
225
+ <div class="annotation">
226
+
227
+ <div class="pilwrap ">
228
+ <a class="pilcrow" href="#section-11">&#182;</a>
229
+ </div>
230
+ <p>white space is required</p>
231
+
232
+ </div>
233
+
234
+ <div class="content"><div class='highlight'><pre> out_file.write(guid)
235
+ out_file.close
236
+
237
+ <span class="keyword">rescue</span> <span class="constant">Exception</span> =&gt; e
238
+ err = e.message
239
+ <span class="keyword">end</span>
240
+ <span class="keyword">end</span></pre></div></div>
241
+
242
+ </li>
243
+
244
+
245
+ <li id="section-12">
246
+ <div class="annotation">
247
+
248
+ <div class="pilwrap ">
249
+ <a class="pilcrow" href="#section-12">&#182;</a>
250
+ </div>
251
+ <p>POST request</p>
252
+
253
+ </div>
254
+
255
+ <div class="content"><div class='highlight'><pre>post <span class="string">'/sample40'</span> <span class="keyword">do</span></pre></div></div>
256
+
257
+ </li>
258
+
259
+
260
+ <li id="section-13">
261
+ <div class="annotation">
262
+
263
+ <div class="pilwrap ">
264
+ <a class="pilcrow" href="#section-13">&#182;</a>
265
+ </div>
266
+ <p>set variables</p>
267
+
268
+ </div>
269
+
270
+ <div class="content"><div class='highlight'><pre> set <span class="symbol">:client_id</span>, params[<span class="symbol">:clientId</span>]
271
+ set <span class="symbol">:private_key</span>, params[<span class="symbol">:privateKey</span>]
272
+ set <span class="symbol">:form_guid</span>, params[<span class="symbol">:formGuid</span>]
273
+ set <span class="symbol">:callback</span>, params[<span class="symbol">:callbackUrl</span>]
274
+ set <span class="symbol">:base_path</span>, params[<span class="symbol">:basePath</span>]
275
+
276
+ <span class="keyword">begin</span></pre></div></div>
277
+
278
+ </li>
279
+
280
+
281
+ <li id="section-14">
282
+ <div class="annotation">
283
+
284
+ <div class="pilwrap ">
285
+ <a class="pilcrow" href="#section-14">&#182;</a>
286
+ </div>
287
+ <p>Check required variables</p>
288
+
289
+ </div>
290
+
291
+ <div class="content"><div class='highlight'><pre> raise <span class="string">'Please enter all required parameters'</span> <span class="keyword">if</span> settings.client_id.empty? <span class="keyword">or</span> settings.private_key.empty? <span class="keyword">or</span> settings.form_guid.empty?
292
+
293
+ <span class="keyword">if</span> settings.base_path.empty? <span class="keyword">then</span> settings.base_path = <span class="string">'https://api.groupdocs.com'</span> <span class="keyword">end</span></pre></div></div>
294
+
295
+ </li>
296
+
297
+
298
+ <li id="section-15">
299
+ <div class="annotation">
300
+
301
+ <div class="pilwrap ">
302
+ <a class="pilcrow" href="#section-15">&#182;</a>
303
+ </div>
304
+ <p>Configure your access to API server</p>
305
+
306
+ </div>
307
+
308
+ <div class="content"><div class='highlight'><pre> <span class="constant">GroupDocs</span>.configure <span class="keyword">do</span> |groupdocs|
309
+ groupdocs.client_id = settings.client_id
310
+ groupdocs.private_key = settings.private_key</pre></div></div>
311
+
312
+ </li>
313
+
314
+
315
+ <li id="section-16">
316
+ <div class="annotation">
317
+
318
+ <div class="pilwrap ">
319
+ <a class="pilcrow" href="#section-16">&#182;</a>
320
+ </div>
321
+ <p>Optionally specify API server and version</p>
322
+
323
+ </div>
324
+
325
+ <div class="content"><div class='highlight'><pre> groupdocs.api_server = settings.base_path <span class="comment"># default is 'https://api.groupdocs.com'</span>
326
+ <span class="keyword">end</span></pre></div></div>
327
+
328
+ </li>
329
+
330
+
331
+ <li id="section-17">
332
+ <div class="annotation">
333
+
334
+ <div class="pilwrap ">
335
+ <a class="pilcrow" href="#section-17">&#182;</a>
336
+ </div>
337
+ <p>Write client and private key to the file for callback job</p>
338
+
339
+ </div>
340
+
341
+ <div class="content"><div class='highlight'><pre> <span class="keyword">if</span> settings.callback
342
+ out_file = <span class="constant">File</span>.new(<span class="string">"<span class="subst">#{<span class="constant">File</span>.dirname(__FILE_<span class="number">_</span>)}</span>/../public/user_info.txt"</span>, <span class="string">'w'</span>)</pre></div></div>
343
+
344
+ </li>
345
+
346
+
347
+ <li id="section-18">
348
+ <div class="annotation">
349
+
350
+ <div class="pilwrap ">
351
+ <a class="pilcrow" href="#section-18">&#182;</a>
352
+ </div>
353
+ <p>white space is required</p>
354
+
355
+ </div>
356
+
357
+ <div class="content"><div class='highlight'><pre> out_file.write(<span class="string">"<span class="subst">#{settings.client_id}</span> "</span>)
358
+ out_file.write(<span class="string">"<span class="subst">#{settings.private_key}</span> "</span>)
359
+ out_file.close
360
+ <span class="keyword">end</span>
361
+
362
+ guid = settings.form_guid</pre></div></div>
363
+
364
+ </li>
365
+
366
+
367
+ <li id="section-19">
368
+ <div class="annotation">
369
+
370
+ <div class="pilwrap ">
371
+ <a class="pilcrow" href="#section-19">&#182;</a>
372
+ </div>
373
+ <p>Create new Form with guid</p>
374
+
375
+ </div>
376
+
377
+ <div class="content"><div class='highlight'><pre> form = <span class="constant">GroupDocs::Signature::Form</span>.new()
378
+ form.name = <span class="string">"Test Form"</span></pre></div></div>
379
+
380
+ </li>
381
+
382
+
383
+ <li id="section-20">
384
+ <div class="annotation">
385
+
386
+ <div class="pilwrap ">
387
+ <a class="pilcrow" href="#section-20">&#182;</a>
388
+ </div>
389
+ <p>Get id with new Form</p>
390
+
391
+ </div>
392
+
393
+ <div class="content"><div class='highlight'><pre> id = form.create!({<span class="symbol">:formId</span> =&gt; guid})</pre></div></div>
394
+
395
+ </li>
396
+
397
+
398
+ <li id="section-21">
399
+ <div class="annotation">
400
+
401
+ <div class="pilwrap ">
402
+ <a class="pilcrow" href="#section-21">&#182;</a>
403
+ </div>
404
+ <p>Get Form</p>
405
+
406
+ </div>
407
+
408
+ <div class="content"><div class='highlight'><pre> form = <span class="constant">GroupDocs::Signature::Form</span>.get!(id)</pre></div></div>
409
+
410
+ </li>
411
+
412
+
413
+ <li id="section-22">
414
+ <div class="annotation">
415
+
416
+ <div class="pilwrap ">
417
+ <a class="pilcrow" href="#section-22">&#182;</a>
418
+ </div>
419
+ <p>Publish the Form</p>
420
+
421
+ </div>
422
+
423
+ <div class="content"><div class='highlight'><pre> form.publish!({<span class="symbol">:callbackUrl</span> =&gt; settings.callback})</pre></div></div>
424
+
425
+ </li>
426
+
427
+
428
+ <li id="section-23">
429
+ <div class="annotation">
430
+
431
+ <div class="pilwrap ">
432
+ <a class="pilcrow" href="#section-23">&#182;</a>
433
+ </div>
434
+ <p>Get url from request</p>
435
+
436
+ </div>
437
+
438
+ <div class="content"><div class='highlight'><pre> <span class="keyword">case</span> settings.base_path
439
+
440
+ <span class="keyword">when</span> <span class="string">'https://stage-api-groupdocs.dynabic.com'</span>
441
+ url = <span class="string">"http://stage-apps-groupdocs.dynabic.com/signature2/forms/signembed/ <span class="subst">#{guid}</span>"</span>
442
+ <span class="keyword">when</span> <span class="string">'https://dev-api-groupdocs.dynabic.com'</span>
443
+ url = <span class="string">"http://dev-apps-groupdocs.dynabic.com/signature2/forms/signembed/ <span class="subst">#{guid}</span>"</span>
444
+ <span class="keyword">else</span>
445
+ url = <span class="string">"https://apps.groupdocs.com/signature2/forms/signembed/ <span class="subst">#{guid}</span>"</span>
446
+ <span class="keyword">end</span></pre></div></div>
447
+
448
+ </li>
449
+
450
+
451
+ <li id="section-24">
452
+ <div class="annotation">
453
+
454
+ <div class="pilwrap ">
455
+ <a class="pilcrow" href="#section-24">&#182;</a>
456
+ </div>
457
+ <p>Delete file callback_info.txt</p>
458
+
459
+ </div>
460
+
461
+ <div class="content"><div class='highlight'><pre> <span class="keyword">if</span> <span class="constant">File</span>.exist?(<span class="string">"<span class="subst">#{<span class="constant">File</span>.dirname(__FILE_<span class="number">_</span>)}</span>/../public/callback_info.txt"</span>)
462
+ <span class="constant">File</span>.delete(<span class="string">"<span class="subst">#{<span class="constant">File</span>.dirname(__FILE_<span class="number">_</span>)}</span>/../public/callback_info.txt"</span>)
463
+ <span class="keyword">end</span></pre></div></div>
464
+
465
+ </li>
466
+
467
+
468
+ <li id="section-25">
469
+ <div class="annotation">
470
+
471
+ <div class="pilwrap ">
472
+ <a class="pilcrow" href="#section-25">&#182;</a>
473
+ </div>
474
+ <p>Add the signature to url the request</p>
475
+
476
+ </div>
477
+
478
+ <div class="content"><div class='highlight'><pre> iframe = <span class="constant">GroupDocs::Api::Request</span>.new(<span class="symbol">:path</span> =&gt; url).prepare_and_sign_url
479
+ iframe = <span class="string">"&lt;iframe width='100%' id='downloadframe' height='600' src='<span class="subst">#{iframe}</span>'&gt;&lt;/iframe&gt;"</span>
480
+
481
+ <span class="keyword">rescue</span> <span class="constant">Exception</span> =&gt; e
482
+ err = e.message
483
+ <span class="keyword">end</span></pre></div></div>
484
+
485
+ </li>
486
+
487
+
488
+ <li id="section-26">
489
+ <div class="annotation">
490
+
491
+ <div class="pilwrap ">
492
+ <a class="pilcrow" href="#section-26">&#182;</a>
493
+ </div>
494
+ <p>Set variables for template</p>
495
+
496
+ </div>
497
+
498
+ <div class="content"><div class='highlight'><pre> haml <span class="symbol">:sample40</span>, <span class="symbol">:locals</span> =&gt; {<span class="symbol">:userId</span> =&gt; settings.client_id,
499
+ <span class="symbol">:privateKey</span> =&gt; settings.private_key,
500
+ <span class="symbol">:callback</span> =&gt; settings.callback,
501
+ <span class="symbol">:iframe</span> =&gt; iframe,
502
+ <span class="symbol">:err</span> =&gt; err}
503
+ <span class="keyword">end</span></pre></div></div>
504
+
505
+ </li>
506
+
507
+ </ul>
508
+ </div>
509
+ </body>
510
+ </html>