groupdocs 1.5.8 → 1.5.9

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 (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
@@ -59,7 +59,7 @@
59
59
  <div class="pilwrap ">
60
60
  <a class="pilcrow" href="#section-3">&#182;</a>
61
61
  </div>
62
- <p>set variables</p>
62
+ <p>Set variables</p>
63
63
 
64
64
  </div>
65
65
 
@@ -83,9 +83,7 @@
83
83
 
84
84
  </div>
85
85
 
86
- <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?
87
-
88
- <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>
86
+ <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?</pre></div></div>
89
87
 
90
88
  </li>
91
89
 
@@ -96,6 +94,27 @@
96
94
  <div class="pilwrap ">
97
95
  <a class="pilcrow" href="#section-5">&#182;</a>
98
96
  </div>
97
+ <p>Prepare base path</p>
98
+
99
+ </div>
100
+
101
+ <div class="content"><div class='highlight'><pre> <span class="keyword">if</span> settings.base_path.empty?
102
+ base_path = <span class="string">'https://api.groupdocs.com'</span>
103
+ <span class="keyword">elsif</span> settings.base_path.match(<span class="string">'/v2.0'</span>)
104
+ base_path = settings.base_path.split(<span class="string">'/v2.0'</span>)[<span class="number">0</span>]
105
+ <span class="keyword">else</span>
106
+ base_path = settings.base_path
107
+ <span class="keyword">end</span></pre></div></div>
108
+
109
+ </li>
110
+
111
+
112
+ <li id="section-6">
113
+ <div class="annotation">
114
+
115
+ <div class="pilwrap ">
116
+ <a class="pilcrow" href="#section-6">&#182;</a>
117
+ </div>
99
118
  <p>Configure your access to API server</p>
100
119
 
101
120
  </div>
@@ -107,17 +126,18 @@
107
126
  </li>
108
127
 
109
128
 
110
- <li id="section-6">
129
+ <li id="section-7">
111
130
  <div class="annotation">
112
131
 
113
132
  <div class="pilwrap ">
114
- <a class="pilcrow" href="#section-6">&#182;</a>
133
+ <a class="pilcrow" href="#section-7">&#182;</a>
115
134
  </div>
116
135
  <p>Optionally specify API server and version</p>
117
136
 
118
137
  </div>
119
138
 
120
- <div class="content"><div class='highlight'><pre> groupdocs.api_server = settings.base_path <span class="comment"># default is 'https://api.groupdocs.com'</span>
139
+ <div class="content"><div class='highlight'><pre> groupdocs.api_server = base_path <span class="comment"># default is 'https://api.groupdocs.com'</span>
140
+
121
141
  <span class="keyword">end</span>
122
142
 
123
143
  document = <span class="constant">GroupDocs::Storage::File</span>.new(<span class="symbol">:guid</span> =&gt; settings.file_id).to_document</pre></div></div>
@@ -125,11 +145,11 @@
125
145
  </li>
126
146
 
127
147
 
128
- <li id="section-7">
148
+ <li id="section-8">
129
149
  <div class="annotation">
130
150
 
131
151
  <div class="pilwrap ">
132
- <a class="pilcrow" href="#section-7">&#182;</a>
152
+ <a class="pilcrow" href="#section-8">&#182;</a>
133
153
  </div>
134
154
  <p>Check, has document the annotations?</p>
135
155
 
@@ -140,11 +160,11 @@
140
160
  </li>
141
161
 
142
162
 
143
- <li id="section-8">
163
+ <li id="section-9">
144
164
  <div class="annotation">
145
165
 
146
166
  <div class="pilwrap ">
147
- <a class="pilcrow" href="#section-8">&#182;</a>
167
+ <a class="pilcrow" href="#section-9">&#182;</a>
148
168
  </div>
149
169
  <p>Create Hash with the options for job. :status=&gt; -1 means the Draft status of the job</p>
150
170
 
@@ -155,11 +175,11 @@
155
175
  </li>
156
176
 
157
177
 
158
- <li id="section-9">
178
+ <li id="section-10">
159
179
  <div class="annotation">
160
180
 
161
181
  <div class="pilwrap ">
162
- <a class="pilcrow" href="#section-9">&#182;</a>
182
+ <a class="pilcrow" href="#section-10">&#182;</a>
163
183
  </div>
164
184
  <p>Create Job with provided options with Draft status (Sheduled job)</p>
165
185
 
@@ -170,11 +190,11 @@
170
190
  </li>
171
191
 
172
192
 
173
- <li id="section-10">
193
+ <li id="section-11">
174
194
  <div class="annotation">
175
195
 
176
196
  <div class="pilwrap ">
177
- <a class="pilcrow" href="#section-10">&#182;</a>
197
+ <a class="pilcrow" href="#section-11">&#182;</a>
178
198
  </div>
179
199
  <p>Add the documents to previously created Job</p>
180
200
 
@@ -185,11 +205,11 @@
185
205
  </li>
186
206
 
187
207
 
188
- <li id="section-11">
208
+ <li id="section-12">
189
209
  <div class="annotation">
190
210
 
191
211
  <div class="pilwrap ">
192
- <a class="pilcrow" href="#section-11">&#182;</a>
212
+ <a class="pilcrow" href="#section-12">&#182;</a>
193
213
  </div>
194
214
  <p>Update the Job with new status. :status =&gt; &#39;0&#39; mean Active status of the job (Start the job)</p>
195
215
 
@@ -209,11 +229,11 @@
209
229
  </li>
210
230
 
211
231
 
212
- <li id="section-12">
232
+ <li id="section-13">
213
233
  <div class="annotation">
214
234
 
215
235
  <div class="pilwrap ">
216
- <a class="pilcrow" href="#section-12">&#182;</a>
236
+ <a class="pilcrow" href="#section-13">&#182;</a>
217
237
  </div>
218
238
  <p>Get the document into Pdf format</p>
219
239
 
@@ -226,11 +246,11 @@
226
246
  </li>
227
247
 
228
248
 
229
- <li id="section-13">
249
+ <li id="section-14">
230
250
  <div class="annotation">
231
251
 
232
252
  <div class="pilwrap ">
233
- <a class="pilcrow" href="#section-13">&#182;</a>
253
+ <a class="pilcrow" href="#section-14">&#182;</a>
234
254
  </div>
235
255
  <p>Set iframe with document GUID or raise an error</p>
236
256
 
@@ -241,45 +261,80 @@
241
261
  </li>
242
262
 
243
263
 
244
- <li id="section-14">
264
+ <li id="section-15">
245
265
  <div class="annotation">
246
266
 
247
267
  <div class="pilwrap ">
248
- <a class="pilcrow" href="#section-14">&#182;</a>
268
+ <a class="pilcrow" href="#section-15">&#182;</a>
249
269
  </div>
250
- <p>Get url from request</p>
270
+ <p>Add the signature in url</p>
251
271
 
252
272
  </div>
253
273
 
254
- <div class="content"><div class='highlight'><pre> <span class="keyword">case</span> settings.base_path
255
-
274
+ <div class="content"><div class='highlight'><pre> iframe = <span class="string">"/document-annotation2/embed/<span class="subst">#{document[<span class="number">0</span>].guid}</span>"</span></pre></div></div>
275
+
276
+ </li>
277
+
278
+
279
+ <li id="section-16">
280
+ <div class="annotation">
281
+
282
+ <div class="pilwrap ">
283
+ <a class="pilcrow" href="#section-16">&#182;</a>
284
+ </div>
285
+ <p>Construct result string</p>
286
+
287
+ </div>
288
+
289
+ <div class="content"><div class='highlight'><pre> url = <span class="constant">GroupDocs::Api::Request</span>.new(<span class="symbol">:path</span> =&gt; iframe).prepare_and_sign_url</pre></div></div>
290
+
291
+ </li>
292
+
293
+
294
+ <li id="section-17">
295
+ <div class="annotation">
296
+
297
+ <div class="pilwrap ">
298
+ <a class="pilcrow" href="#section-17">&#182;</a>
299
+ </div>
300
+ <p>Generate iframe URL</p>
301
+
302
+ </div>
303
+
304
+ <div class="content"><div class='highlight'><pre> <span class="keyword">case</span> base_path
256
305
  <span class="keyword">when</span> <span class="string">'https://stage-api-groupdocs.dynabic.com'</span>
257
- url = <span class="string">"http://stage-apps-groupdocs.dynabic.com/document-annotation/embed/<span class="subst">#{document[<span class="number">0</span>].guid}</span>"</span>
306
+ iframe = <span class="string">"https://stage-api-groupdocs.dynabic.com<span class="subst">#{url}</span>"</span>
258
307
  <span class="keyword">when</span> <span class="string">'https://dev-api-groupdocs.dynabic.com'</span>
259
- url = <span class="string">"http://dev-apps-groupdocs.dynabic.com/document-annotation/embed/<span class="subst">#{document[<span class="number">0</span>].guid}</span>"</span>
308
+ iframe = <span class="string">"https://dev-apps.groupdocs.com<span class="subst">#{url}</span>"</span>
260
309
  <span class="keyword">else</span>
261
- url = <span class="string">"https://apps.groupdocs.com/document-annotation/embed/<span class="subst">#{document[<span class="number">0</span>].guid}</span>"</span>
262
- <span class="keyword">end</span></pre></div></div>
310
+ iframe = <span class="string">"https://apps.groupdocs.com<span class="subst">#{url}</span>"</span>
311
+ <span class="keyword">end</span>
312
+
313
+ iframe = <span class="string">"&lt;iframe width='100%' height='600' id='downloadframe' frameborder='0' src='<span class="subst">#{iframe}</span>'&gt;&lt;/iframe&gt;"</span>
314
+
315
+ path = <span class="string">"<span class="subst">#{<span class="constant">File</span>.dirname(__FILE_<span class="number">_</span>)}</span>/../public/downloads"</span></pre></div></div>
263
316
 
264
317
  </li>
265
318
 
266
319
 
267
- <li id="section-15">
320
+ <li id="section-18">
268
321
  <div class="annotation">
269
322
 
270
323
  <div class="pilwrap ">
271
- <a class="pilcrow" href="#section-15">&#182;</a>
324
+ <a class="pilcrow" href="#section-18">&#182;</a>
272
325
  </div>
273
- <p>Add the signature in url</p>
326
+ <p>Remove all files from download directory or create folder if it not there</p>
274
327
 
275
328
  </div>
276
329
 
277
- <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
278
- iframe = <span class="string">"&lt;iframe width='100%' height='600' frameborder='0' src='<span class="subst">#{iframe}</span>'&gt;&lt;/iframe&gt;"</span>
330
+ <div class="content"><div class='highlight'><pre> <span class="keyword">if</span> <span class="constant">File</span>.directory?(path)
331
+ <span class="constant">Dir</span>.foreach(path) { |f| fn = <span class="constant">File</span>.join(path, f); <span class="constant">File</span>.delete(fn) <span class="keyword">if</span> f != <span class="string">'.'</span> &amp;&amp; f != <span class="string">'..'</span> }
332
+ <span class="keyword">else</span>
333
+ <span class="constant">Dir::</span>mkdir(path)
334
+ <span class="keyword">end</span>
279
335
 
280
- path = <span class="string">"<span class="subst">#{<span class="constant">File</span>.dirname(__FILE_<span class="number">_</span>)}</span>/../public/downloads"</span>
281
336
  <span class="constant">GroupDocs::User</span>.download!(path, document[<span class="number">0</span>].outputs[<span class="number">0</span>].name, document[<span class="number">0</span>].outputs[<span class="number">0</span>].guid)
282
- message = <span class="string">"&lt;span style=\"color:green\"&gt;File with annotations was downloaded to server's local folder. You can check them &lt;a href=\"/downloads/<span class="subst">#{document[<span class="number">0</span>].outputs[<span class="number">0</span>].name}</span>\"&gt;here&lt;/a&gt;&lt;/span&gt;"</span>
337
+ message = <span class="string">"&lt;span style=\"color:green\"&gt;File with annotations was downloaded to server's local folder. You can check them &lt;a href=\"/downloads/<span class="subst">#{document[<span class="number">0</span>].outputs[<span class="number">0</span>].name}</span>\" download&gt;here&lt;/a&gt;&lt;/span&gt;"</span>
283
338
  <span class="keyword">else</span>
284
339
  raise <span class="string">'File was not converted'</span>
285
340
  <span class="keyword">end</span>
@@ -290,11 +345,11 @@
290
345
  </li>
291
346
 
292
347
 
293
- <li id="section-16">
348
+ <li id="section-19">
294
349
  <div class="annotation">
295
350
 
296
351
  <div class="pilwrap ">
297
- <a class="pilcrow" href="#section-16">&#182;</a>
352
+ <a class="pilcrow" href="#section-19">&#182;</a>
298
353
  </div>
299
354
  <p>Set variables for template</p>
300
355
 
@@ -0,0 +1,669 @@
1
+ <!DOCTYPE html>
2
+
3
+ <html>
4
+ <head>
5
+ <title>sample43.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>sample43.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">'/sample43'</span> <span class="keyword">do</span>
35
+ haml <span class="symbol">:sample43</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">'/sample43'</span> <span class="keyword">do</span></pre></div></div>
52
+
53
+ </li>
54
+
55
+
56
+ <li id="section-3">
57
+ <div class="annotation">
58
+
59
+ <div class="pilwrap ">
60
+ <a class="pilcrow" href="#section-3">&#182;</a>
61
+ </div>
62
+ <<<<<<< HEAD
63
+ <p>set variables</p>
64
+ =======
65
+ <p>Set variables</p>
66
+ >>>>>>> samples-dev
67
+
68
+ </div>
69
+
70
+ <div class="content"><div class='highlight'><pre> set <span class="symbol">:client_id</span>, params[<span class="symbol">:clientId</span>]
71
+ set <span class="symbol">:private_key</span>, params[<span class="symbol">:privateKey</span>]
72
+ set <span class="symbol">:source</span>, params[<span class="symbol">:source</span>]
73
+ set <span class="symbol">:file_id</span>, params[<span class="symbol">:fileId</span>]
74
+ set <span class="symbol">:url</span>, params[<span class="symbol">:url</span>]
75
+ set <span class="symbol">:base_path</span>, params[<span class="symbol">:basePath</span>]</pre></div></div>
76
+
77
+ </li>
78
+
79
+
80
+ <li id="section-4">
81
+ <div class="annotation">
82
+
83
+ <div class="pilwrap ">
84
+ <a class="pilcrow" href="#section-4">&#182;</a>
85
+ </div>
86
+ <p>Set download path</p>
87
+
88
+ </div>
89
+
90
+ <div class="content"><div class='highlight'><pre> downloads_path = <span class="string">"<span class="subst">#{<span class="constant">File</span>.dirname(__FILE_<span class="number">_</span>)}</span>/../public/downloads"</span></pre></div></div>
91
+
92
+ </li>
93
+
94
+
95
+ <li id="section-5">
96
+ <div class="annotation">
97
+
98
+ <div class="pilwrap ">
99
+ <a class="pilcrow" href="#section-5">&#182;</a>
100
+ </div>
101
+ <p>Remove all files from download directory or create folder if it not there</p>
102
+
103
+ </div>
104
+
105
+ <div class="content"><div class='highlight'><pre> <span class="keyword">if</span> <span class="constant">File</span>.directory?(downloads_path)
106
+ <span class="constant">Dir</span>.foreach(downloads_path) { |f| fn = <span class="constant">File</span>.join(downloads_path, f); <span class="constant">File</span>.delete(fn) <span class="keyword">if</span> f != <span class="string">'.'</span> &amp;&amp; f != <span class="string">'..'</span> }
107
+ <span class="keyword">else</span>
108
+ <span class="constant">Dir::</span>mkdir(downloads_path)
109
+ <span class="keyword">end</span>
110
+
111
+ <span class="keyword">begin</span></pre></div></div>
112
+
113
+ </li>
114
+
115
+
116
+ <li id="section-6">
117
+ <div class="annotation">
118
+
119
+ <div class="pilwrap ">
120
+ <a class="pilcrow" href="#section-6">&#182;</a>
121
+ </div>
122
+ <p>Check required variables</p>
123
+
124
+ </div>
125
+
126
+ <<<<<<< HEAD
127
+ <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?
128
+
129
+ <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>
130
+ =======
131
+ <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?</pre></div></div>
132
+ >>>>>>> samples-dev
133
+
134
+ </li>
135
+
136
+
137
+ <li id="section-7">
138
+ <div class="annotation">
139
+
140
+ <div class="pilwrap ">
141
+ <a class="pilcrow" href="#section-7">&#182;</a>
142
+ </div>
143
+ <<<<<<< HEAD
144
+ =======
145
+ <p>Prepare base path</p>
146
+
147
+ </div>
148
+
149
+ <div class="content"><div class='highlight'><pre> <span class="keyword">if</span> settings.base_path.empty?
150
+ base_path = <span class="string">'https://api.groupdocs.com'</span>
151
+ <span class="keyword">elsif</span> settings.base_path.match(<span class="string">'/v2.0'</span>)
152
+ base_path = settings.base_path.split(<span class="string">'/v2.0'</span>)[<span class="number">0</span>]
153
+ <span class="keyword">else</span>
154
+ base_path = settings.base_path
155
+ <span class="keyword">end</span></pre></div></div>
156
+
157
+ </li>
158
+
159
+
160
+ <li id="section-8">
161
+ <div class="annotation">
162
+
163
+ <div class="pilwrap ">
164
+ <a class="pilcrow" href="#section-8">&#182;</a>
165
+ </div>
166
+ >>>>>>> samples-dev
167
+ <p>Configure your access to API server</p>
168
+
169
+ </div>
170
+
171
+ <div class="content"><div class='highlight'><pre> <span class="constant">GroupDocs</span>.configure <span class="keyword">do</span> |groupdocs|
172
+ groupdocs.client_id = settings.client_id
173
+ groupdocs.private_key = settings.private_key</pre></div></div>
174
+
175
+ </li>
176
+
177
+
178
+ <<<<<<< HEAD
179
+ <li id="section-8">
180
+ <div class="annotation">
181
+
182
+ <div class="pilwrap ">
183
+ <a class="pilcrow" href="#section-8">&#182;</a>
184
+ =======
185
+ <li id="section-9">
186
+ <div class="annotation">
187
+
188
+ <div class="pilwrap ">
189
+ <a class="pilcrow" href="#section-9">&#182;</a>
190
+ >>>>>>> samples-dev
191
+ </div>
192
+ <p>Optionally specify API server and version</p>
193
+
194
+ </div>
195
+
196
+ <<<<<<< HEAD
197
+ <div class="content"><div class='highlight'><pre> groupdocs.api_server = settings.base_path <span class="comment"># default is 'https://api.groupdocs.com'</span>
198
+ =======
199
+ <div class="content"><div class='highlight'><pre> groupdocs.api_server = base_path <span class="comment"># default is 'https://api.groupdocs.com'</span>
200
+
201
+ >>>>>>> samples-dev
202
+ <span class="keyword">end</span></pre></div></div>
203
+
204
+ </li>
205
+
206
+
207
+ <<<<<<< HEAD
208
+ <li id="section-9">
209
+ <div class="annotation">
210
+
211
+ <div class="pilwrap ">
212
+ <a class="pilcrow" href="#section-9">&#182;</a>
213
+ =======
214
+ <li id="section-10">
215
+ <div class="annotation">
216
+
217
+ <div class="pilwrap ">
218
+ <a class="pilcrow" href="#section-10">&#182;</a>
219
+ >>>>>>> samples-dev
220
+ </div>
221
+ <p>Get document by file GUID</p>
222
+
223
+ </div>
224
+
225
+ <div class="content"><div class='highlight'><pre> <span class="keyword">case</span> settings.source
226
+ <span class="keyword">when</span> <span class="string">'guid'</span></pre></div></div>
227
+
228
+ </li>
229
+
230
+
231
+ <<<<<<< HEAD
232
+ <li id="section-10">
233
+ <div class="annotation">
234
+
235
+ <div class="pilwrap ">
236
+ <a class="pilcrow" href="#section-10">&#182;</a>
237
+ =======
238
+ <li id="section-11">
239
+ <div class="annotation">
240
+
241
+ <div class="pilwrap ">
242
+ <a class="pilcrow" href="#section-11">&#182;</a>
243
+ >>>>>>> samples-dev
244
+ </div>
245
+ <p>Create instance of File</p>
246
+
247
+ </div>
248
+
249
+ <div class="content"><div class='highlight'><pre> file = <span class="constant">GroupDocs::Storage::File</span>.new({<span class="symbol">:guid</span> =&gt; settings.file_id})
250
+ <span class="keyword">when</span> <span class="string">'local'</span></pre></div></div>
251
+
252
+ </li>
253
+
254
+
255
+ <<<<<<< HEAD
256
+ <li id="section-11">
257
+ <div class="annotation">
258
+
259
+ <div class="pilwrap ">
260
+ <a class="pilcrow" href="#section-11">&#182;</a>
261
+ =======
262
+ <li id="section-12">
263
+ <div class="annotation">
264
+
265
+ <div class="pilwrap ">
266
+ <a class="pilcrow" href="#section-12">&#182;</a>
267
+ >>>>>>> samples-dev
268
+ </div>
269
+ <p>Construct path</p>
270
+
271
+ </div>
272
+
273
+ <div class="content"><div class='highlight'><pre> file_path = <span class="string">"<span class="subst">#{<span class="constant">Dir</span>.tmpdir}</span>/<span class="subst">#{params[<span class="symbol">:file</span>][<span class="symbol">:filename</span>]}</span>"</span></pre></div></div>
274
+
275
+ </li>
276
+
277
+
278
+ <<<<<<< HEAD
279
+ <li id="section-12">
280
+ <div class="annotation">
281
+
282
+ <div class="pilwrap ">
283
+ <a class="pilcrow" href="#section-12">&#182;</a>
284
+ =======
285
+ <li id="section-13">
286
+ <div class="annotation">
287
+
288
+ <div class="pilwrap ">
289
+ <a class="pilcrow" href="#section-13">&#182;</a>
290
+ >>>>>>> samples-dev
291
+ </div>
292
+ <p>Open file</p>
293
+
294
+ </div>
295
+
296
+ <div class="content"><div class='highlight'><pre> <span class="constant">File</span>.open(file_path, <span class="string">'wb'</span>) { |f| f.write(params[<span class="symbol">:file</span>][<span class="symbol">:tempfile</span>].read) }</pre></div></div>
297
+
298
+ </li>
299
+
300
+
301
+ <<<<<<< HEAD
302
+ <li id="section-13">
303
+ <div class="annotation">
304
+
305
+ <div class="pilwrap ">
306
+ <a class="pilcrow" href="#section-13">&#182;</a>
307
+ =======
308
+ <li id="section-14">
309
+ <div class="annotation">
310
+
311
+ <div class="pilwrap ">
312
+ <a class="pilcrow" href="#section-14">&#182;</a>
313
+ >>>>>>> samples-dev
314
+ </div>
315
+ <p>Make a request to API using client_id and private_key</p>
316
+
317
+ </div>
318
+
319
+ <div class="content"><div class='highlight'><pre> file = <span class="constant">GroupDocs::Storage::File</span>.upload!(file_path, {})
320
+ <span class="keyword">when</span> <span class="string">'url'</span></pre></div></div>
321
+
322
+ </li>
323
+
324
+
325
+ <<<<<<< HEAD
326
+ <li id="section-14">
327
+ <div class="annotation">
328
+
329
+ <div class="pilwrap ">
330
+ <a class="pilcrow" href="#section-14">&#182;</a>
331
+ =======
332
+ <li id="section-15">
333
+ <div class="annotation">
334
+
335
+ <div class="pilwrap ">
336
+ <a class="pilcrow" href="#section-15">&#182;</a>
337
+ >>>>>>> samples-dev
338
+ </div>
339
+ <p>Upload file from defined url</p>
340
+
341
+ </div>
342
+
343
+ <div class="content"><div class='highlight'><pre> file = <span class="constant">GroupDocs::Storage::File</span>.upload_web!(settings.url)
344
+ <span class="keyword">else</span>
345
+ raise <span class="string">'Wrong GUID source.'</span>
346
+ <span class="keyword">end</span></pre></div></div>
347
+
348
+ </li>
349
+
350
+
351
+ <<<<<<< HEAD
352
+ <li id="section-15">
353
+ <div class="annotation">
354
+
355
+ <div class="pilwrap ">
356
+ <a class="pilcrow" href="#section-15">&#182;</a>
357
+ =======
358
+ <li id="section-16">
359
+ <div class="annotation">
360
+
361
+ <div class="pilwrap ">
362
+ <a class="pilcrow" href="#section-16">&#182;</a>
363
+ >>>>>>> samples-dev
364
+ </div>
365
+ <p>Raise exception if something went wrong</p>
366
+
367
+ </div>
368
+
369
+ <div class="content"><div class='highlight'><pre> raise <span class="string">'No such file'</span> <span class="keyword">unless</span> file.is_a?(<span class="constant">GroupDocs::Storage::File</span>)</pre></div></div>
370
+
371
+ </li>
372
+
373
+
374
+ <<<<<<< HEAD
375
+ <li id="section-16">
376
+ <div class="annotation">
377
+
378
+ <div class="pilwrap ">
379
+ <a class="pilcrow" href="#section-16">&#182;</a>
380
+ =======
381
+ <li id="section-17">
382
+ <div class="annotation">
383
+
384
+ <div class="pilwrap ">
385
+ <a class="pilcrow" href="#section-17">&#182;</a>
386
+ >>>>>>> samples-dev
387
+ </div>
388
+ <p>Make GroupDocs::Storage::Document instance</p>
389
+
390
+ </div>
391
+
392
+ <div class="content"><div class='highlight'><pre> document = file.to_document</pre></div></div>
393
+
394
+ </li>
395
+
396
+
397
+ <<<<<<< HEAD
398
+ <li id="section-17">
399
+ <div class="annotation">
400
+
401
+ <div class="pilwrap ">
402
+ <a class="pilcrow" href="#section-17">&#182;</a>
403
+ =======
404
+ <li id="section-18">
405
+ <div class="annotation">
406
+
407
+ <div class="pilwrap ">
408
+ <a class="pilcrow" href="#section-18">&#182;</a>
409
+ >>>>>>> samples-dev
410
+ </div>
411
+ <p>Create Hash with the options for job. :status=&gt; -1 means the Draft status of the job</p>
412
+
413
+ </div>
414
+
415
+ <div class="content"><div class='highlight'><pre> options = {<span class="symbol">:actions</span> =&gt; [<span class="symbol">:convert</span>, <span class="symbol">:number_lines</span>], <span class="symbol">:out_formats</span> =&gt; [<span class="string">'doc'</span>], <span class="symbol">:name</span> =&gt; <span class="string">'sample'</span>}</pre></div></div>
416
+
417
+ </li>
418
+
419
+
420
+ <<<<<<< HEAD
421
+ <li id="section-18">
422
+ <div class="annotation">
423
+
424
+ <div class="pilwrap ">
425
+ <a class="pilcrow" href="#section-18">&#182;</a>
426
+ =======
427
+ <li id="section-19">
428
+ <div class="annotation">
429
+
430
+ <div class="pilwrap ">
431
+ <a class="pilcrow" href="#section-19">&#182;</a>
432
+ >>>>>>> samples-dev
433
+ </div>
434
+ <p>Create Job with provided options with Draft status (Sheduled job)</p>
435
+
436
+ </div>
437
+
438
+ <div class="content"><div class='highlight'><pre> job = <span class="constant">GroupDocs::Job</span>.create!(options)</pre></div></div>
439
+
440
+ </li>
441
+
442
+
443
+ <<<<<<< HEAD
444
+ <li id="section-19">
445
+ <div class="annotation">
446
+
447
+ <div class="pilwrap ">
448
+ <a class="pilcrow" href="#section-19">&#182;</a>
449
+ =======
450
+ <li id="section-20">
451
+ <div class="annotation">
452
+
453
+ <div class="pilwrap ">
454
+ <a class="pilcrow" href="#section-20">&#182;</a>
455
+ >>>>>>> samples-dev
456
+ </div>
457
+ <p>Add the documents to previously created Job</p>
458
+
459
+ </div>
460
+
461
+ <div class="content"><div class='highlight'><pre> job.add_document!(document, {<span class="symbol">:check_ownership</span> =&gt; <span class="keyword">false</span>})</pre></div></div>
462
+
463
+ </li>
464
+
465
+
466
+ <<<<<<< HEAD
467
+ <li id="section-20">
468
+ <div class="annotation">
469
+
470
+ <div class="pilwrap ">
471
+ <a class="pilcrow" href="#section-20">&#182;</a>
472
+ =======
473
+ <li id="section-21">
474
+ <div class="annotation">
475
+
476
+ <div class="pilwrap ">
477
+ <a class="pilcrow" href="#section-21">&#182;</a>
478
+ >>>>>>> samples-dev
479
+ </div>
480
+ <p>Update the Job with new status. :status =&gt; &#39;0&#39; mean Active status of the job (Start the job)</p>
481
+
482
+ </div>
483
+
484
+ <div class="content"><div class='highlight'><pre> id = job.update!({<span class="symbol">:status</span> =&gt; <span class="string">'pending'</span>})
485
+
486
+ i = <span class="number">1</span>
487
+
488
+ <span class="keyword">while</span> i&lt;<span class="number">5</span> <span class="keyword">do</span>
489
+ sleep(<span class="number">5</span>)
490
+ job = <span class="constant">GroupDocs::Job</span>.get!(id[<span class="symbol">:job_id</span>])
491
+ <span class="keyword">break</span> <span class="keyword">if</span> job.status == <span class="symbol">:archived</span>
492
+ i = i + <span class="number">1</span>
493
+ <span class="keyword">end</span></pre></div></div>
494
+
495
+ </li>
496
+
497
+
498
+ <<<<<<< HEAD
499
+ <li id="section-21">
500
+ <div class="annotation">
501
+
502
+ <div class="pilwrap ">
503
+ <a class="pilcrow" href="#section-21">&#182;</a>
504
+ =======
505
+ <li id="section-22">
506
+ <div class="annotation">
507
+
508
+ <div class="pilwrap ">
509
+ <a class="pilcrow" href="#section-22">&#182;</a>
510
+ >>>>>>> samples-dev
511
+ </div>
512
+ <p>Get the document into Pdf format</p>
513
+
514
+ </div>
515
+
516
+ <div class="content"><div class='highlight'><pre> file = job.documents!()
517
+
518
+ document = file[<span class="symbol">:inputs</span>][<span class="number">0</span>].outputs[<span class="number">0</span>]</pre></div></div>
519
+
520
+ </li>
521
+
522
+
523
+ <<<<<<< HEAD
524
+ <li id="section-22">
525
+ <div class="annotation">
526
+
527
+ <div class="pilwrap ">
528
+ <a class="pilcrow" href="#section-22">&#182;</a>
529
+ =======
530
+ <li id="section-23">
531
+ <div class="annotation">
532
+
533
+ <div class="pilwrap ">
534
+ <a class="pilcrow" href="#section-23">&#182;</a>
535
+ >>>>>>> samples-dev
536
+ </div>
537
+ <p>Set iframe with document GUID or raise an error</p>
538
+
539
+ </div>
540
+
541
+ <div class="content"><div class='highlight'><pre> <span class="keyword">if</span> document</pre></div></div>
542
+
543
+ </li>
544
+
545
+
546
+ <<<<<<< HEAD
547
+ <li id="section-23">
548
+ <div class="annotation">
549
+
550
+ <div class="pilwrap ">
551
+ <a class="pilcrow" href="#section-23">&#182;</a>
552
+ </div>
553
+ <p>Get url from request</p>
554
+
555
+ </div>
556
+
557
+ <div class="content"><div class='highlight'><pre> <span class="keyword">case</span> settings.base_path
558
+
559
+ <span class="keyword">when</span> <span class="string">'https://stage-api-groupdocs.dynabic.com'</span>
560
+ url = <span class="string">"http://stage-apps-groupdocs.dynabic.com/document-viewer/embed/<span class="subst">#{document.guid}</span>"</span>
561
+ <span class="keyword">when</span> <span class="string">'https://dev-api-groupdocs.dynabic.com'</span>
562
+ url = <span class="string">"http://dev-apps-groupdocs.dynabic.com/document-viewer/embed/<span class="subst">#{document.guid}</span>"</span>
563
+ <span class="keyword">else</span>
564
+ url = <span class="string">"https://apps.groupdocs.com/document-viewer/embed/<span class="subst">#{document.guid}</span>"</span>
565
+ <span class="keyword">end</span></pre></div></div>
566
+ =======
567
+ <li id="section-24">
568
+ <div class="annotation">
569
+
570
+ <div class="pilwrap ">
571
+ <a class="pilcrow" href="#section-24">&#182;</a>
572
+ </div>
573
+ <p>Add the signature in url</p>
574
+
575
+ </div>
576
+
577
+ <div class="content"><div class='highlight'><pre> iframe = <span class="string">"document-viewer/embed/<span class="subst">#{document.guid}</span>"</span></pre></div></div>
578
+ >>>>>>> samples-dev
579
+
580
+ </li>
581
+
582
+
583
+ <<<<<<< HEAD
584
+ <li id="section-24">
585
+ <div class="annotation">
586
+
587
+ <div class="pilwrap ">
588
+ <a class="pilcrow" href="#section-24">&#182;</a>
589
+ </div>
590
+ <p>Add the signature in url</p>
591
+
592
+ </div>
593
+
594
+ <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
595
+ iframe = <span class="string">"&lt;iframe width='100%' height='600' frameborder='0' src='<span class="subst">#{iframe}</span>'&gt;&lt;/iframe&gt;"</span>
596
+ =======
597
+ <li id="section-25">
598
+ <div class="annotation">
599
+
600
+ <div class="pilwrap ">
601
+ <a class="pilcrow" href="#section-25">&#182;</a>
602
+ </div>
603
+ <p>Construct result string</p>
604
+
605
+ </div>
606
+
607
+ <div class="content"><div class='highlight'><pre> url = <span class="constant">GroupDocs::Api::Request</span>.new(<span class="symbol">:path</span> =&gt; iframe).prepare_and_sign_url</pre></div></div>
608
+
609
+ </li>
610
+
611
+
612
+ <li id="section-26">
613
+ <div class="annotation">
614
+
615
+ <div class="pilwrap ">
616
+ <a class="pilcrow" href="#section-26">&#182;</a>
617
+ </div>
618
+ <p>Generate iframe URL</p>
619
+
620
+ </div>
621
+
622
+ <div class="content"><div class='highlight'><pre> <span class="keyword">case</span> base_path
623
+ <span class="keyword">when</span> <span class="string">'https://stage-api-groupdocs.dynabic.com'</span>
624
+ iframe = <span class="string">"https://stage-api-groupdocs.dynabic.com<span class="subst">#{url}</span>"</span>
625
+ <span class="keyword">when</span> <span class="string">'https://dev-api-groupdocs.dynabic.com'</span>
626
+ iframe = <span class="string">"https://dev-apps.groupdocs.com<span class="subst">#{url}</span>"</span>
627
+ <span class="keyword">else</span>
628
+ iframe = <span class="string">"https://apps.groupdocs.com<span class="subst">#{url}</span>"</span>
629
+ <span class="keyword">end</span>
630
+
631
+ iframe = <span class="string">"&lt;iframe width='100%' height='600' id='downloadframe' frameborder='0' src='<span class="subst">#{iframe}</span>'&gt;&lt;/iframe&gt;"</span>
632
+ >>>>>>> samples-dev
633
+ <span class="keyword">else</span>
634
+ raise <span class="string">'File was not converted'</span>
635
+ <span class="keyword">end</span>
636
+ <span class="keyword">rescue</span> <span class="constant">Exception</span> =&gt; e
637
+ err = e.message
638
+ <span class="keyword">end</span></pre></div></div>
639
+
640
+ </li>
641
+
642
+
643
+ <<<<<<< HEAD
644
+ <li id="section-25">
645
+ <div class="annotation">
646
+
647
+ <div class="pilwrap ">
648
+ <a class="pilcrow" href="#section-25">&#182;</a>
649
+ =======
650
+ <li id="section-27">
651
+ <div class="annotation">
652
+
653
+ <div class="pilwrap ">
654
+ <a class="pilcrow" href="#section-27">&#182;</a>
655
+ >>>>>>> samples-dev
656
+ </div>
657
+ <p>Set variables for template</p>
658
+
659
+ </div>
660
+
661
+ <div class="content"><div class='highlight'><pre> haml <span class="symbol">:sample43</span>, <span class="symbol">:locals</span> =&gt; {<span class="symbol">:userId</span> =&gt; settings.client_id, <span class="symbol">:privateKey</span> =&gt; settings.private_key, <span class="symbol">:err</span> =&gt; err, <span class="symbol">:iframe</span> =&gt; iframe}
662
+ <span class="keyword">end</span></pre></div></div>
663
+
664
+ </li>
665
+
666
+ </ul>
667
+ </div>
668
+ </body>
669
+ </html>