groupdocs 1.5.8 → 1.5.9

Sign up to get free protection for your applications and to get access to all the features.
Files changed (101) hide show
  1. data/CHANGELOG.md +9 -0
  2. data/examples/api-samples/public/docs/sample01.html +34 -15
  3. data/examples/api-samples/public/docs/sample02.html +36 -15
  4. data/examples/api-samples/public/docs/sample03.html +55 -34
  5. data/examples/api-samples/public/docs/sample04.html +33 -14
  6. data/examples/api-samples/public/docs/sample05.html +51 -33
  7. data/examples/api-samples/public/docs/sample06.html +86 -40
  8. data/examples/api-samples/public/docs/sample07.html +32 -13
  9. data/examples/api-samples/public/docs/sample08.html +39 -20
  10. data/examples/api-samples/public/docs/sample09.html +93 -39
  11. data/examples/api-samples/public/docs/sample10.html +39 -21
  12. data/examples/api-samples/public/docs/sample11.html +133 -88
  13. data/examples/api-samples/public/docs/sample12.html +33 -14
  14. data/examples/api-samples/public/docs/sample13.html +14 -7
  15. data/examples/api-samples/public/docs/sample14.html +37 -18
  16. data/examples/api-samples/public/docs/sample15.html +29 -10
  17. data/examples/api-samples/public/docs/sample16.html +58 -25
  18. data/examples/api-samples/public/docs/sample17.html +71 -38
  19. data/examples/api-samples/public/docs/sample18.html +98 -71
  20. data/examples/api-samples/public/docs/sample19.html +74 -42
  21. data/examples/api-samples/public/docs/sample20.html +39 -21
  22. data/examples/api-samples/public/docs/sample21.html +113 -69
  23. data/examples/api-samples/public/docs/sample22.html +89 -43
  24. data/examples/api-samples/public/docs/sample23.html +50 -32
  25. data/examples/api-samples/public/docs/sample24.html +64 -31
  26. data/examples/api-samples/public/docs/sample25.html +107 -60
  27. data/examples/api-samples/public/docs/sample26.html +29 -10
  28. data/examples/api-samples/public/docs/sample27.html +107 -61
  29. data/examples/api-samples/public/docs/sample28.html +158 -9
  30. data/examples/api-samples/public/docs/sample29.html +13 -8
  31. data/examples/api-samples/public/docs/sample30.html +34 -15
  32. data/examples/api-samples/public/docs/sample31.html +107 -76
  33. data/examples/api-samples/public/docs/sample32.html +104 -40
  34. data/examples/api-samples/public/docs/sample33.html +85 -36
  35. data/examples/api-samples/public/docs/sample34.html +30 -11
  36. data/examples/api-samples/public/docs/sample35.html +90 -27
  37. data/examples/api-samples/public/docs/sample36.html +36 -16
  38. data/examples/api-samples/public/docs/sample37.html +144 -265
  39. data/examples/api-samples/public/docs/sample38.html +113 -64
  40. data/examples/api-samples/public/docs/sample39.html +118 -45
  41. data/examples/api-samples/public/docs/sample40.html +81 -46
  42. data/examples/api-samples/public/docs/sample41.html +562 -90
  43. data/examples/api-samples/public/docs/sample42.html +94 -39
  44. data/examples/api-samples/public/docs/sample43.html +669 -0
  45. data/examples/api-samples/samples/sample01.rb +17 -10
  46. data/examples/api-samples/samples/sample02.rb +21 -12
  47. data/examples/api-samples/samples/sample03.rb +35 -29
  48. data/examples/api-samples/samples/sample04.rb +19 -12
  49. data/examples/api-samples/samples/sample05.rb +24 -17
  50. data/examples/api-samples/samples/sample06.rb +38 -32
  51. data/examples/api-samples/samples/sample07.rb +19 -12
  52. data/examples/api-samples/samples/sample08.rb +22 -15
  53. data/examples/api-samples/samples/sample09.rb +31 -29
  54. data/examples/api-samples/samples/sample10.rb +22 -15
  55. data/examples/api-samples/samples/sample11.rb +78 -81
  56. data/examples/api-samples/samples/sample12.rb +19 -21
  57. data/examples/api-samples/samples/sample13.rb +19 -21
  58. data/examples/api-samples/samples/sample14.rb +18 -12
  59. data/examples/api-samples/samples/sample15.rb +17 -10
  60. data/examples/api-samples/samples/sample16.rb +25 -17
  61. data/examples/api-samples/samples/sample17.rb +31 -23
  62. data/examples/api-samples/samples/sample18.rb +60 -55
  63. data/examples/api-samples/samples/sample19.rb +48 -42
  64. data/examples/api-samples/samples/sample20.rb +20 -13
  65. data/examples/api-samples/samples/sample21.rb +62 -54
  66. data/examples/api-samples/samples/sample22.rb +37 -31
  67. data/examples/api-samples/samples/sample23.rb +24 -17
  68. data/examples/api-samples/samples/sample24.rb +29 -22
  69. data/examples/api-samples/samples/sample25.rb +47 -40
  70. data/examples/api-samples/samples/sample26.rb +16 -9
  71. data/examples/api-samples/samples/sample27.rb +46 -39
  72. data/examples/api-samples/samples/sample28.rb +42 -11
  73. data/examples/api-samples/samples/sample29.rb +13 -8
  74. data/examples/api-samples/samples/sample30.rb +19 -12
  75. data/examples/api-samples/samples/sample31.rb +63 -58
  76. data/examples/api-samples/samples/sample32.rb +45 -42
  77. data/examples/api-samples/samples/sample33.rb +36 -25
  78. data/examples/api-samples/samples/sample34.rb +16 -9
  79. data/examples/api-samples/samples/sample35.rb +66 -53
  80. data/examples/api-samples/samples/sample36.rb +19 -15
  81. data/examples/api-samples/samples/sample37.rb +61 -99
  82. data/examples/api-samples/samples/sample38.rb +51 -43
  83. data/examples/api-samples/samples/sample39.rb +78 -62
  84. data/examples/api-samples/samples/sample40.rb +48 -38
  85. data/examples/api-samples/samples/sample41.rb +189 -67
  86. data/examples/api-samples/samples/sample42.rb +37 -29
  87. data/examples/api-samples/samples/sample43.rb +127 -0
  88. data/examples/api-samples/views/_others_samples.haml +4 -2
  89. data/examples/api-samples/views/index.haml +4 -2
  90. data/examples/api-samples/views/sample11.haml +1 -1
  91. data/examples/api-samples/views/sample28.haml +8 -0
  92. data/examples/api-samples/views/sample31.haml +1 -6
  93. data/examples/api-samples/views/sample39.haml +7 -2
  94. data/examples/api-samples/views/sample41.haml +78 -33
  95. data/examples/api-samples/views/sample42.haml +0 -1
  96. data/examples/api-samples/views/sample43.haml +91 -0
  97. data/lib/groupdocs/api/helpers/access_rights_helper.rb +6 -5
  98. data/lib/groupdocs/api/helpers/url_helper.rb +2 -1
  99. data/lib/groupdocs/document.rb +3 -3
  100. data/lib/groupdocs/version.rb +1 -1
  101. metadata +5 -2
@@ -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>