groupdocs 1.5.7 → 1.5.8

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 (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>