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.
- data/CHANGELOG.md +9 -0
- data/examples/api-samples/public/docs/sample01.html +34 -15
- data/examples/api-samples/public/docs/sample02.html +36 -15
- data/examples/api-samples/public/docs/sample03.html +55 -34
- data/examples/api-samples/public/docs/sample04.html +33 -14
- data/examples/api-samples/public/docs/sample05.html +51 -33
- data/examples/api-samples/public/docs/sample06.html +86 -40
- data/examples/api-samples/public/docs/sample07.html +32 -13
- data/examples/api-samples/public/docs/sample08.html +39 -20
- data/examples/api-samples/public/docs/sample09.html +93 -39
- data/examples/api-samples/public/docs/sample10.html +39 -21
- data/examples/api-samples/public/docs/sample11.html +133 -88
- data/examples/api-samples/public/docs/sample12.html +33 -14
- data/examples/api-samples/public/docs/sample13.html +14 -7
- data/examples/api-samples/public/docs/sample14.html +37 -18
- data/examples/api-samples/public/docs/sample15.html +29 -10
- data/examples/api-samples/public/docs/sample16.html +58 -25
- data/examples/api-samples/public/docs/sample17.html +71 -38
- data/examples/api-samples/public/docs/sample18.html +98 -71
- data/examples/api-samples/public/docs/sample19.html +74 -42
- data/examples/api-samples/public/docs/sample20.html +39 -21
- data/examples/api-samples/public/docs/sample21.html +113 -69
- data/examples/api-samples/public/docs/sample22.html +89 -43
- data/examples/api-samples/public/docs/sample23.html +50 -32
- data/examples/api-samples/public/docs/sample24.html +64 -31
- data/examples/api-samples/public/docs/sample25.html +107 -60
- data/examples/api-samples/public/docs/sample26.html +29 -10
- data/examples/api-samples/public/docs/sample27.html +107 -61
- data/examples/api-samples/public/docs/sample28.html +158 -9
- data/examples/api-samples/public/docs/sample29.html +13 -8
- data/examples/api-samples/public/docs/sample30.html +34 -15
- data/examples/api-samples/public/docs/sample31.html +107 -76
- data/examples/api-samples/public/docs/sample32.html +104 -40
- data/examples/api-samples/public/docs/sample33.html +85 -36
- data/examples/api-samples/public/docs/sample34.html +30 -11
- data/examples/api-samples/public/docs/sample35.html +90 -27
- data/examples/api-samples/public/docs/sample36.html +36 -16
- data/examples/api-samples/public/docs/sample37.html +144 -265
- data/examples/api-samples/public/docs/sample38.html +113 -64
- data/examples/api-samples/public/docs/sample39.html +118 -45
- data/examples/api-samples/public/docs/sample40.html +81 -46
- data/examples/api-samples/public/docs/sample41.html +562 -90
- data/examples/api-samples/public/docs/sample42.html +94 -39
- data/examples/api-samples/public/docs/sample43.html +669 -0
- data/examples/api-samples/samples/sample01.rb +17 -10
- data/examples/api-samples/samples/sample02.rb +21 -12
- data/examples/api-samples/samples/sample03.rb +35 -29
- data/examples/api-samples/samples/sample04.rb +19 -12
- data/examples/api-samples/samples/sample05.rb +24 -17
- data/examples/api-samples/samples/sample06.rb +38 -32
- data/examples/api-samples/samples/sample07.rb +19 -12
- data/examples/api-samples/samples/sample08.rb +22 -15
- data/examples/api-samples/samples/sample09.rb +31 -29
- data/examples/api-samples/samples/sample10.rb +22 -15
- data/examples/api-samples/samples/sample11.rb +78 -81
- data/examples/api-samples/samples/sample12.rb +19 -21
- data/examples/api-samples/samples/sample13.rb +19 -21
- data/examples/api-samples/samples/sample14.rb +18 -12
- data/examples/api-samples/samples/sample15.rb +17 -10
- data/examples/api-samples/samples/sample16.rb +25 -17
- data/examples/api-samples/samples/sample17.rb +31 -23
- data/examples/api-samples/samples/sample18.rb +60 -55
- data/examples/api-samples/samples/sample19.rb +48 -42
- data/examples/api-samples/samples/sample20.rb +20 -13
- data/examples/api-samples/samples/sample21.rb +62 -54
- data/examples/api-samples/samples/sample22.rb +37 -31
- data/examples/api-samples/samples/sample23.rb +24 -17
- data/examples/api-samples/samples/sample24.rb +29 -22
- data/examples/api-samples/samples/sample25.rb +47 -40
- data/examples/api-samples/samples/sample26.rb +16 -9
- data/examples/api-samples/samples/sample27.rb +46 -39
- data/examples/api-samples/samples/sample28.rb +42 -11
- data/examples/api-samples/samples/sample29.rb +13 -8
- data/examples/api-samples/samples/sample30.rb +19 -12
- data/examples/api-samples/samples/sample31.rb +63 -58
- data/examples/api-samples/samples/sample32.rb +45 -42
- data/examples/api-samples/samples/sample33.rb +36 -25
- data/examples/api-samples/samples/sample34.rb +16 -9
- data/examples/api-samples/samples/sample35.rb +66 -53
- data/examples/api-samples/samples/sample36.rb +19 -15
- data/examples/api-samples/samples/sample37.rb +61 -99
- data/examples/api-samples/samples/sample38.rb +51 -43
- data/examples/api-samples/samples/sample39.rb +78 -62
- data/examples/api-samples/samples/sample40.rb +48 -38
- data/examples/api-samples/samples/sample41.rb +189 -67
- data/examples/api-samples/samples/sample42.rb +37 -29
- data/examples/api-samples/samples/sample43.rb +127 -0
- data/examples/api-samples/views/_others_samples.haml +4 -2
- data/examples/api-samples/views/index.haml +4 -2
- data/examples/api-samples/views/sample11.haml +1 -1
- data/examples/api-samples/views/sample28.haml +8 -0
- data/examples/api-samples/views/sample31.haml +1 -6
- data/examples/api-samples/views/sample39.haml +7 -2
- data/examples/api-samples/views/sample41.haml +78 -33
- data/examples/api-samples/views/sample42.haml +0 -1
- data/examples/api-samples/views/sample43.haml +91 -0
- data/lib/groupdocs/api/helpers/access_rights_helper.rb +6 -5
- data/lib/groupdocs/api/helpers/url_helper.rb +2 -1
- data/lib/groupdocs/document.rb +3 -3
- data/lib/groupdocs/version.rb +1 -1
- metadata +5 -2
|
@@ -227,7 +227,7 @@
|
|
|
227
227
|
<div class="pilwrap ">
|
|
228
228
|
<a class="pilcrow" href="#section-11">¶</a>
|
|
229
229
|
</div>
|
|
230
|
-
<p>
|
|
230
|
+
<p>White space is required</p>
|
|
231
231
|
|
|
232
232
|
</div>
|
|
233
233
|
|
|
@@ -263,7 +263,7 @@
|
|
|
263
263
|
<div class="pilwrap ">
|
|
264
264
|
<a class="pilcrow" href="#section-13">¶</a>
|
|
265
265
|
</div>
|
|
266
|
-
<p>
|
|
266
|
+
<p>Set variables</p>
|
|
267
267
|
|
|
268
268
|
</div>
|
|
269
269
|
|
|
@@ -288,9 +288,7 @@
|
|
|
288
288
|
|
|
289
289
|
</div>
|
|
290
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>
|
|
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?</pre></div></div>
|
|
294
292
|
|
|
295
293
|
</li>
|
|
296
294
|
|
|
@@ -301,6 +299,44 @@
|
|
|
301
299
|
<div class="pilwrap ">
|
|
302
300
|
<a class="pilcrow" href="#section-15">¶</a>
|
|
303
301
|
</div>
|
|
302
|
+
<p>Delete file callback_info.txt</p>
|
|
303
|
+
|
|
304
|
+
</div>
|
|
305
|
+
|
|
306
|
+
<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>)
|
|
307
|
+
<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>)
|
|
308
|
+
<span class="keyword">end</span></pre></div></div>
|
|
309
|
+
|
|
310
|
+
</li>
|
|
311
|
+
|
|
312
|
+
|
|
313
|
+
<li id="section-16">
|
|
314
|
+
<div class="annotation">
|
|
315
|
+
|
|
316
|
+
<div class="pilwrap ">
|
|
317
|
+
<a class="pilcrow" href="#section-16">¶</a>
|
|
318
|
+
</div>
|
|
319
|
+
<p>Prepare base path</p>
|
|
320
|
+
|
|
321
|
+
</div>
|
|
322
|
+
|
|
323
|
+
<div class="content"><div class='highlight'><pre> <span class="keyword">if</span> settings.base_path.empty?
|
|
324
|
+
base_path = <span class="string">'https://api.groupdocs.com'</span>
|
|
325
|
+
<span class="keyword">elsif</span> settings.base_path.match(<span class="string">'/v2.0'</span>)
|
|
326
|
+
base_path = settings.base_path.split(<span class="string">'/v2.0'</span>)[<span class="number">0</span>]
|
|
327
|
+
<span class="keyword">else</span>
|
|
328
|
+
base_path = settings.base_path
|
|
329
|
+
<span class="keyword">end</span></pre></div></div>
|
|
330
|
+
|
|
331
|
+
</li>
|
|
332
|
+
|
|
333
|
+
|
|
334
|
+
<li id="section-17">
|
|
335
|
+
<div class="annotation">
|
|
336
|
+
|
|
337
|
+
<div class="pilwrap ">
|
|
338
|
+
<a class="pilcrow" href="#section-17">¶</a>
|
|
339
|
+
</div>
|
|
304
340
|
<p>Configure your access to API server</p>
|
|
305
341
|
|
|
306
342
|
</div>
|
|
@@ -312,27 +348,28 @@
|
|
|
312
348
|
</li>
|
|
313
349
|
|
|
314
350
|
|
|
315
|
-
<li id="section-
|
|
351
|
+
<li id="section-18">
|
|
316
352
|
<div class="annotation">
|
|
317
353
|
|
|
318
354
|
<div class="pilwrap ">
|
|
319
|
-
<a class="pilcrow" href="#section-
|
|
355
|
+
<a class="pilcrow" href="#section-18">¶</a>
|
|
320
356
|
</div>
|
|
321
357
|
<p>Optionally specify API server and version</p>
|
|
322
358
|
|
|
323
359
|
</div>
|
|
324
360
|
|
|
325
|
-
<div class="content"><div class='highlight'><pre> groupdocs.api_server =
|
|
361
|
+
<div class="content"><div class='highlight'><pre> groupdocs.api_server = base_path <span class="comment"># default is 'https://api.groupdocs.com'</span>
|
|
362
|
+
|
|
326
363
|
<span class="keyword">end</span></pre></div></div>
|
|
327
364
|
|
|
328
365
|
</li>
|
|
329
366
|
|
|
330
367
|
|
|
331
|
-
<li id="section-
|
|
368
|
+
<li id="section-19">
|
|
332
369
|
<div class="annotation">
|
|
333
370
|
|
|
334
371
|
<div class="pilwrap ">
|
|
335
|
-
<a class="pilcrow" href="#section-
|
|
372
|
+
<a class="pilcrow" href="#section-19">¶</a>
|
|
336
373
|
</div>
|
|
337
374
|
<p>Write client and private key to the file for callback job</p>
|
|
338
375
|
|
|
@@ -344,13 +381,13 @@
|
|
|
344
381
|
</li>
|
|
345
382
|
|
|
346
383
|
|
|
347
|
-
<li id="section-
|
|
384
|
+
<li id="section-20">
|
|
348
385
|
<div class="annotation">
|
|
349
386
|
|
|
350
387
|
<div class="pilwrap ">
|
|
351
|
-
<a class="pilcrow" href="#section-
|
|
388
|
+
<a class="pilcrow" href="#section-20">¶</a>
|
|
352
389
|
</div>
|
|
353
|
-
<p>
|
|
390
|
+
<p>White space is required</p>
|
|
354
391
|
|
|
355
392
|
</div>
|
|
356
393
|
|
|
@@ -364,11 +401,11 @@
|
|
|
364
401
|
</li>
|
|
365
402
|
|
|
366
403
|
|
|
367
|
-
<li id="section-
|
|
404
|
+
<li id="section-21">
|
|
368
405
|
<div class="annotation">
|
|
369
406
|
|
|
370
407
|
<div class="pilwrap ">
|
|
371
|
-
<a class="pilcrow" href="#section-
|
|
408
|
+
<a class="pilcrow" href="#section-21">¶</a>
|
|
372
409
|
</div>
|
|
373
410
|
<p>Create new Form with guid</p>
|
|
374
411
|
|
|
@@ -380,11 +417,11 @@
|
|
|
380
417
|
</li>
|
|
381
418
|
|
|
382
419
|
|
|
383
|
-
<li id="section-
|
|
420
|
+
<li id="section-22">
|
|
384
421
|
<div class="annotation">
|
|
385
422
|
|
|
386
423
|
<div class="pilwrap ">
|
|
387
|
-
<a class="pilcrow" href="#section-
|
|
424
|
+
<a class="pilcrow" href="#section-22">¶</a>
|
|
388
425
|
</div>
|
|
389
426
|
<p>Get id with new Form</p>
|
|
390
427
|
|
|
@@ -395,11 +432,11 @@
|
|
|
395
432
|
</li>
|
|
396
433
|
|
|
397
434
|
|
|
398
|
-
<li id="section-
|
|
435
|
+
<li id="section-23">
|
|
399
436
|
<div class="annotation">
|
|
400
437
|
|
|
401
438
|
<div class="pilwrap ">
|
|
402
|
-
<a class="pilcrow" href="#section-
|
|
439
|
+
<a class="pilcrow" href="#section-23">¶</a>
|
|
403
440
|
</div>
|
|
404
441
|
<p>Get Form</p>
|
|
405
442
|
|
|
@@ -410,11 +447,11 @@
|
|
|
410
447
|
</li>
|
|
411
448
|
|
|
412
449
|
|
|
413
|
-
<li id="section-
|
|
450
|
+
<li id="section-24">
|
|
414
451
|
<div class="annotation">
|
|
415
452
|
|
|
416
453
|
<div class="pilwrap ">
|
|
417
|
-
<a class="pilcrow" href="#section-
|
|
454
|
+
<a class="pilcrow" href="#section-24">¶</a>
|
|
418
455
|
</div>
|
|
419
456
|
<p>Publish the Form</p>
|
|
420
457
|
|
|
@@ -425,58 +462,56 @@
|
|
|
425
462
|
</li>
|
|
426
463
|
|
|
427
464
|
|
|
428
|
-
<li id="section-
|
|
465
|
+
<li id="section-25">
|
|
429
466
|
<div class="annotation">
|
|
430
467
|
|
|
431
468
|
<div class="pilwrap ">
|
|
432
|
-
<a class="pilcrow" href="#section-
|
|
469
|
+
<a class="pilcrow" href="#section-25">¶</a>
|
|
433
470
|
</div>
|
|
434
|
-
<p>
|
|
471
|
+
<p>Prepare to sign url</p>
|
|
435
472
|
|
|
436
473
|
</div>
|
|
437
474
|
|
|
438
|
-
<div class="content"><div class='highlight'><pre> <span class="
|
|
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>
|
|
475
|
+
<div class="content"><div class='highlight'><pre> iframe = <span class="string">"//signature2/forms/signembed/<span class="subst">#{guid}</span>"</span></pre></div></div>
|
|
447
476
|
|
|
448
477
|
</li>
|
|
449
478
|
|
|
450
479
|
|
|
451
|
-
<li id="section-
|
|
480
|
+
<li id="section-26">
|
|
452
481
|
<div class="annotation">
|
|
453
482
|
|
|
454
483
|
<div class="pilwrap ">
|
|
455
|
-
<a class="pilcrow" href="#section-
|
|
484
|
+
<a class="pilcrow" href="#section-26">¶</a>
|
|
456
485
|
</div>
|
|
457
|
-
<p>
|
|
486
|
+
<p>Construct result string</p>
|
|
458
487
|
|
|
459
488
|
</div>
|
|
460
489
|
|
|
461
|
-
<div class="content"><div class='highlight'><pre>
|
|
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>
|
|
490
|
+
<div class="content"><div class='highlight'><pre> url = <span class="constant">GroupDocs::Api::Request</span>.new(<span class="symbol">:path</span> => iframe).prepare_and_sign_url</pre></div></div>
|
|
464
491
|
|
|
465
492
|
</li>
|
|
466
493
|
|
|
467
494
|
|
|
468
|
-
<li id="section-
|
|
495
|
+
<li id="section-27">
|
|
469
496
|
<div class="annotation">
|
|
470
497
|
|
|
471
498
|
<div class="pilwrap ">
|
|
472
|
-
<a class="pilcrow" href="#section-
|
|
499
|
+
<a class="pilcrow" href="#section-27">¶</a>
|
|
473
500
|
</div>
|
|
474
|
-
<p>
|
|
501
|
+
<p>Generate iframe URL</p>
|
|
475
502
|
|
|
476
503
|
</div>
|
|
477
504
|
|
|
478
|
-
<div class="content"><div class='highlight'><pre>
|
|
479
|
-
|
|
505
|
+
<div class="content"><div class='highlight'><pre> <span class="keyword">case</span> base_path
|
|
506
|
+
<span class="keyword">when</span> <span class="string">'https://stage-api-groupdocs.dynabic.com'</span>
|
|
507
|
+
iframe = <span class="string">"https://stage-api-groupdocs.dynabic.com<span class="subst">#{url}</span>"</span>
|
|
508
|
+
<span class="keyword">when</span> <span class="string">'https://dev-api-groupdocs.dynabic.com'</span>
|
|
509
|
+
iframe = <span class="string">"https://dev-apps.groupdocs.com<span class="subst">#{url}</span>"</span>
|
|
510
|
+
<span class="keyword">else</span>
|
|
511
|
+
iframe = <span class="string">"https://apps.groupdocs.com<span class="subst">#{url}</span>"</span>
|
|
512
|
+
<span class="keyword">end</span>
|
|
513
|
+
|
|
514
|
+
iframe = <span class="string">"<iframe src='<span class="subst">#{iframe}</span>' id='downloadframe' width='800' height='1000'></iframe>"</span>
|
|
480
515
|
|
|
481
516
|
<span class="keyword">rescue</span> <span class="constant">Exception</span> => e
|
|
482
517
|
err = e.message
|
|
@@ -485,11 +520,11 @@
|
|
|
485
520
|
</li>
|
|
486
521
|
|
|
487
522
|
|
|
488
|
-
<li id="section-
|
|
523
|
+
<li id="section-28">
|
|
489
524
|
<div class="annotation">
|
|
490
525
|
|
|
491
526
|
<div class="pilwrap ">
|
|
492
|
-
<a class="pilcrow" href="#section-
|
|
527
|
+
<a class="pilcrow" href="#section-28">¶</a>
|
|
493
528
|
</div>
|
|
494
529
|
<p>Set variables for template</p>
|
|
495
530
|
|
|
@@ -48,7 +48,8 @@
|
|
|
48
48
|
|
|
49
49
|
</div>
|
|
50
50
|
|
|
51
|
-
<div class="content"><div class='highlight'><pre>post <span class="string">'/sample41'</span> <span class="keyword">do</span
|
|
51
|
+
<div class="content"><div class='highlight'><pre>post <span class="string">'/sample41/callback'</span> <span class="keyword">do</span>
|
|
52
|
+
<span class="keyword">begin</span></pre></div></div>
|
|
52
53
|
|
|
53
54
|
</li>
|
|
54
55
|
|
|
@@ -59,16 +60,19 @@
|
|
|
59
60
|
<div class="pilwrap ">
|
|
60
61
|
<a class="pilcrow" href="#section-3">¶</a>
|
|
61
62
|
</div>
|
|
62
|
-
<p>
|
|
63
|
+
<p>Get callback request</p>
|
|
63
64
|
|
|
64
65
|
</div>
|
|
65
66
|
|
|
66
|
-
<div class="content"><div class='highlight'><pre>
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
67
|
+
<div class="content"><div class='highlight'><pre> data = <span class="constant">JSON</span>.parse(request.body.read)
|
|
68
|
+
serialized_data = <span class="constant">JSON</span>.parse(data[<span class="string">'SerializedData'</span>])
|
|
69
|
+
|
|
70
|
+
raise <span class="string">'Empty params!'</span> <span class="keyword">if</span> data.empty?
|
|
71
|
+
|
|
72
|
+
file_guid = serialized_data[<span class="string">'DocumentGuid'</span>]
|
|
73
|
+
collaborator_guid = serialized_data[<span class="string">'UserGuid'</span>]
|
|
74
|
+
client_id = <span class="keyword">nil</span>
|
|
75
|
+
private_key = <span class="keyword">nil</span></pre></div></div>
|
|
72
76
|
|
|
73
77
|
</li>
|
|
74
78
|
|
|
@@ -79,11 +83,19 @@
|
|
|
79
83
|
<div class="pilwrap ">
|
|
80
84
|
<a class="pilcrow" href="#section-4">¶</a>
|
|
81
85
|
</div>
|
|
82
|
-
<p>
|
|
86
|
+
<p>Get private key and client_id from file user_info.txt</p>
|
|
83
87
|
|
|
84
88
|
</div>
|
|
85
89
|
|
|
86
|
-
<div class="content"><div class='highlight'><pre>
|
|
90
|
+
<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>)
|
|
91
|
+
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>)
|
|
92
|
+
contents = contents.split(<span class="string">' '</span>)
|
|
93
|
+
client_id = contents.first
|
|
94
|
+
private_key = contents.last
|
|
95
|
+
<span class="keyword">end</span>
|
|
96
|
+
status = <span class="keyword">nil</span>
|
|
97
|
+
<span class="keyword">if</span> file_guid != <span class="string">''</span> <span class="keyword">and</span> collaborator_guid != <span class="string">''</span>
|
|
98
|
+
document = <span class="constant">GroupDocs::Storage::File</span>.new(<span class="symbol">:guid</span> => file_guid).to_document</pre></div></div>
|
|
87
99
|
|
|
88
100
|
</li>
|
|
89
101
|
|
|
@@ -94,17 +106,12 @@
|
|
|
94
106
|
<div class="pilwrap ">
|
|
95
107
|
<a class="pilcrow" href="#section-5">¶</a>
|
|
96
108
|
</div>
|
|
97
|
-
<p>
|
|
109
|
+
<p>Get all collaborators for the document</p>
|
|
98
110
|
|
|
99
111
|
</div>
|
|
100
112
|
|
|
101
|
-
<div class="content"><div class='highlight'><pre>
|
|
102
|
-
|
|
103
|
-
<span class="keyword">else</span>
|
|
104
|
-
<span class="constant">Dir::</span>mkdir(downloads_path)
|
|
105
|
-
<span class="keyword">end</span>
|
|
106
|
-
|
|
107
|
-
<span class="keyword">begin</span></pre></div></div>
|
|
113
|
+
<div class="content"><div class='highlight'><pre> get_collaborator = document.collaborators!
|
|
114
|
+
get_collaborator.each <span class="keyword">do</span> |reviewer|</pre></div></div>
|
|
108
115
|
|
|
109
116
|
</li>
|
|
110
117
|
|
|
@@ -115,13 +122,12 @@
|
|
|
115
122
|
<div class="pilwrap ">
|
|
116
123
|
<a class="pilcrow" href="#section-6">¶</a>
|
|
117
124
|
</div>
|
|
118
|
-
<p>
|
|
125
|
+
<p>Set reviewer rights to view only</p>
|
|
119
126
|
|
|
120
127
|
</div>
|
|
121
128
|
|
|
122
|
-
<div class="content"><div class='highlight'><pre>
|
|
123
|
-
|
|
124
|
-
<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>
|
|
129
|
+
<div class="content"><div class='highlight'><pre> reviewer.access_rights = <span class="string">%w(view)</span>
|
|
130
|
+
<span class="keyword">end</span></pre></div></div>
|
|
125
131
|
|
|
126
132
|
</li>
|
|
127
133
|
|
|
@@ -132,13 +138,12 @@
|
|
|
132
138
|
<div class="pilwrap ">
|
|
133
139
|
<a class="pilcrow" href="#section-7">¶</a>
|
|
134
140
|
</div>
|
|
135
|
-
<p>
|
|
141
|
+
<p>Make request to API to update reviewer rights</p>
|
|
136
142
|
|
|
137
143
|
</div>
|
|
138
144
|
|
|
139
|
-
<div class="content"><div class='highlight'><pre>
|
|
140
|
-
|
|
141
|
-
groupdocs.private_key = settings.private_key</pre></div></div>
|
|
145
|
+
<div class="content"><div class='highlight'><pre> status = document.set_reviewers! get_collaborator
|
|
146
|
+
<span class="keyword">end</span></pre></div></div>
|
|
142
147
|
|
|
143
148
|
</li>
|
|
144
149
|
|
|
@@ -149,12 +154,11 @@
|
|
|
149
154
|
<div class="pilwrap ">
|
|
150
155
|
<a class="pilcrow" href="#section-8">¶</a>
|
|
151
156
|
</div>
|
|
152
|
-
<p>
|
|
157
|
+
<p>Create new file callback_info.txt and write the guid document</p>
|
|
153
158
|
|
|
154
159
|
</div>
|
|
155
160
|
|
|
156
|
-
<div class="content"><div class='highlight'><pre>
|
|
157
|
-
<span class="keyword">end</span></pre></div></div>
|
|
161
|
+
<div class="content"><div class='highlight'><pre> 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>
|
|
158
162
|
|
|
159
163
|
</li>
|
|
160
164
|
|
|
@@ -165,12 +169,17 @@
|
|
|
165
169
|
<div class="pilwrap ">
|
|
166
170
|
<a class="pilcrow" href="#section-9">¶</a>
|
|
167
171
|
</div>
|
|
168
|
-
<p>
|
|
172
|
+
<p>White space is required</p>
|
|
169
173
|
|
|
170
174
|
</div>
|
|
171
175
|
|
|
172
|
-
<div class="content"><div class='highlight'><pre>
|
|
173
|
-
|
|
176
|
+
<div class="content"><div class='highlight'><pre> out_file.write(status.<span class="keyword">nil</span>? ? <span class="string">"Error"</span> <span class="symbol">:</span> <span class="string">"User rights was set to view only"</span>)
|
|
177
|
+
out_file.close
|
|
178
|
+
|
|
179
|
+
<span class="keyword">rescue</span> <span class="constant">Exception</span> => e
|
|
180
|
+
err = e.message
|
|
181
|
+
<span class="keyword">end</span>
|
|
182
|
+
<span class="keyword">end</span></pre></div></div>
|
|
174
183
|
|
|
175
184
|
</li>
|
|
176
185
|
|
|
@@ -181,12 +190,17 @@
|
|
|
181
190
|
<div class="pilwrap ">
|
|
182
191
|
<a class="pilcrow" href="#section-10">¶</a>
|
|
183
192
|
</div>
|
|
184
|
-
<p>
|
|
193
|
+
<p>POST request</p>
|
|
185
194
|
|
|
186
195
|
</div>
|
|
187
196
|
|
|
188
|
-
<div class="content"><div class='highlight'><pre>
|
|
189
|
-
|
|
197
|
+
<div class="content"><div class='highlight'><pre>post <span class="string">'/sample41/check_guid'</span> <span class="keyword">do</span>
|
|
198
|
+
pp <span class="string">'test'</span>
|
|
199
|
+
<span class="keyword">begin</span>
|
|
200
|
+
result = <span class="keyword">nil</span>
|
|
201
|
+
i = <span class="number">0</span>
|
|
202
|
+
<span class="keyword">for</span> i <span class="keyword">in</span> <span class="number">1</span>..<span class="number">10</span>
|
|
203
|
+
i +=<span class="number">1</span></pre></div></div>
|
|
190
204
|
|
|
191
205
|
</li>
|
|
192
206
|
|
|
@@ -197,11 +211,18 @@
|
|
|
197
211
|
<div class="pilwrap ">
|
|
198
212
|
<a class="pilcrow" href="#section-11">¶</a>
|
|
199
213
|
</div>
|
|
200
|
-
<p>
|
|
214
|
+
<p>Check is downloads folder exist</p>
|
|
201
215
|
|
|
202
216
|
</div>
|
|
203
217
|
|
|
204
|
-
<div class="content"><div class='highlight'><pre>
|
|
218
|
+
<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>)
|
|
219
|
+
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>)
|
|
220
|
+
<span class="keyword">if</span> result != <span class="string">''</span>
|
|
221
|
+
<span class="keyword">break</span>
|
|
222
|
+
<span class="keyword">end</span>
|
|
223
|
+
<span class="keyword">end</span>
|
|
224
|
+
sleep(<span class="number">3</span>)
|
|
225
|
+
<span class="keyword">end</span></pre></div></div>
|
|
205
226
|
|
|
206
227
|
</li>
|
|
207
228
|
|
|
@@ -212,11 +233,20 @@
|
|
|
212
233
|
<div class="pilwrap ">
|
|
213
234
|
<a class="pilcrow" href="#section-12">¶</a>
|
|
214
235
|
</div>
|
|
215
|
-
<p>
|
|
236
|
+
<p>Check result</p>
|
|
216
237
|
|
|
217
238
|
</div>
|
|
218
239
|
|
|
219
|
-
<div class="content"><div class='highlight'><pre>
|
|
240
|
+
<div class="content"><div class='highlight'><pre> <span class="keyword">if</span> result == <span class="string">'Error'</span>
|
|
241
|
+
result = <span class="string">"File was not found. Looks like something went wrong."</span>
|
|
242
|
+
<span class="keyword">else</span>
|
|
243
|
+
result
|
|
244
|
+
<span class="keyword">end</span>
|
|
245
|
+
|
|
246
|
+
<span class="keyword">rescue</span> <span class="constant">Exception</span> => e
|
|
247
|
+
err = e.message
|
|
248
|
+
<span class="keyword">end</span>
|
|
249
|
+
<span class="keyword">end</span></pre></div></div>
|
|
220
250
|
|
|
221
251
|
</li>
|
|
222
252
|
|
|
@@ -227,12 +257,11 @@
|
|
|
227
257
|
<div class="pilwrap ">
|
|
228
258
|
<a class="pilcrow" href="#section-13">¶</a>
|
|
229
259
|
</div>
|
|
230
|
-
<p>
|
|
260
|
+
<p>POST request</p>
|
|
231
261
|
|
|
232
262
|
</div>
|
|
233
263
|
|
|
234
|
-
<div class="content"><div class='highlight'><pre>
|
|
235
|
-
<span class="keyword">when</span> <span class="string">'url'</span></pre></div></div>
|
|
264
|
+
<div class="content"><div class='highlight'><pre>post <span class="string">'/sample41'</span> <span class="keyword">do</span></pre></div></div>
|
|
236
265
|
|
|
237
266
|
</li>
|
|
238
267
|
|
|
@@ -243,14 +272,18 @@
|
|
|
243
272
|
<div class="pilwrap ">
|
|
244
273
|
<a class="pilcrow" href="#section-14">¶</a>
|
|
245
274
|
</div>
|
|
246
|
-
<p>
|
|
275
|
+
<p>Set variables</p>
|
|
247
276
|
|
|
248
277
|
</div>
|
|
249
278
|
|
|
250
|
-
<div class="content"><div class='highlight'><pre>
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
279
|
+
<div class="content"><div class='highlight'><pre> set <span class="symbol">:client_id</span>, params[<span class="symbol">:clientId</span>]
|
|
280
|
+
set <span class="symbol">:private_key</span>, params[<span class="symbol">:privateKey</span>]
|
|
281
|
+
set <span class="symbol">:email</span>, params[<span class="symbol">:email</span>]
|
|
282
|
+
set <span class="symbol">:source</span>, params[<span class="symbol">:source</span>]
|
|
283
|
+
set <span class="symbol">:file_id</span>, params[<span class="symbol">:fileId</span>]
|
|
284
|
+
set <span class="symbol">:url</span>, params[<span class="symbol">:url</span>]
|
|
285
|
+
set <span class="symbol">:base_path</span>, params[<span class="symbol">:basePath</span>]
|
|
286
|
+
set <span class="symbol">:callback</span>, params[<span class="symbol">:callbackUrl</span>]</pre></div></div>
|
|
254
287
|
|
|
255
288
|
</li>
|
|
256
289
|
|
|
@@ -261,11 +294,11 @@
|
|
|
261
294
|
<div class="pilwrap ">
|
|
262
295
|
<a class="pilcrow" href="#section-15">¶</a>
|
|
263
296
|
</div>
|
|
264
|
-
<p>
|
|
297
|
+
<p>Set download path</p>
|
|
265
298
|
|
|
266
299
|
</div>
|
|
267
300
|
|
|
268
|
-
<div class="content"><div class='highlight'><pre>
|
|
301
|
+
<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>
|
|
269
302
|
|
|
270
303
|
</li>
|
|
271
304
|
|
|
@@ -276,11 +309,21 @@
|
|
|
276
309
|
<div class="pilwrap ">
|
|
277
310
|
<a class="pilcrow" href="#section-16">¶</a>
|
|
278
311
|
</div>
|
|
279
|
-
<p>
|
|
312
|
+
<p>Remove all files from download directory or create folder if it not there</p>
|
|
280
313
|
|
|
281
314
|
</div>
|
|
282
315
|
|
|
283
|
-
<div class="content"><div class='highlight'><pre>
|
|
316
|
+
<div class="content"><div class='highlight'><pre> <span class="keyword">if</span> <span class="constant">File</span>.directory?(downloads_path)
|
|
317
|
+
<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> && f != <span class="string">'..'</span> }
|
|
318
|
+
<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>)
|
|
319
|
+
<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>)
|
|
320
|
+
<span class="keyword">end</span>
|
|
321
|
+
<span class="keyword">else</span>
|
|
322
|
+
<span class="constant">Dir::</span>mkdir(downloads_path)
|
|
323
|
+
<span class="keyword">end</span>
|
|
324
|
+
|
|
325
|
+
|
|
326
|
+
<span class="keyword">begin</span></pre></div></div>
|
|
284
327
|
|
|
285
328
|
</li>
|
|
286
329
|
|
|
@@ -291,11 +334,11 @@
|
|
|
291
334
|
<div class="pilwrap ">
|
|
292
335
|
<a class="pilcrow" href="#section-17">¶</a>
|
|
293
336
|
</div>
|
|
294
|
-
<p>
|
|
337
|
+
<p>Check required variables</p>
|
|
295
338
|
|
|
296
339
|
</div>
|
|
297
340
|
|
|
298
|
-
<div class="content"><div class='highlight'><pre>
|
|
341
|
+
<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.email.empty?</pre></div></div>
|
|
299
342
|
|
|
300
343
|
</li>
|
|
301
344
|
|
|
@@ -306,11 +349,17 @@
|
|
|
306
349
|
<div class="pilwrap ">
|
|
307
350
|
<a class="pilcrow" href="#section-18">¶</a>
|
|
308
351
|
</div>
|
|
309
|
-
<p>
|
|
352
|
+
<p>Prepare base path</p>
|
|
310
353
|
|
|
311
354
|
</div>
|
|
312
355
|
|
|
313
|
-
<div class="content"><div class='highlight'><pre>
|
|
356
|
+
<div class="content"><div class='highlight'><pre> <span class="keyword">if</span> settings.base_path.empty?
|
|
357
|
+
base_path = <span class="string">'https://api.groupdocs.com'</span>
|
|
358
|
+
<span class="keyword">elsif</span> settings.base_path.match(<span class="string">'/v2.0'</span>)
|
|
359
|
+
base_path = settings.base_path.split(<span class="string">'/v2.0'</span>)[<span class="number">0</span>]
|
|
360
|
+
<span class="keyword">else</span>
|
|
361
|
+
base_path = settings.base_path
|
|
362
|
+
<span class="keyword">end</span></pre></div></div>
|
|
314
363
|
|
|
315
364
|
</li>
|
|
316
365
|
|
|
@@ -321,11 +370,13 @@
|
|
|
321
370
|
<div class="pilwrap ">
|
|
322
371
|
<a class="pilcrow" href="#section-19">¶</a>
|
|
323
372
|
</div>
|
|
324
|
-
<p>
|
|
373
|
+
<p>Configure your access to API server</p>
|
|
325
374
|
|
|
326
375
|
</div>
|
|
327
376
|
|
|
328
|
-
<div class="content"><div class='highlight'><pre>
|
|
377
|
+
<div class="content"><div class='highlight'><pre> <span class="constant">GroupDocs</span>.configure <span class="keyword">do</span> |groupdocs|
|
|
378
|
+
groupdocs.client_id = settings.client_id
|
|
379
|
+
groupdocs.private_key = settings.private_key</pre></div></div>
|
|
329
380
|
|
|
330
381
|
</li>
|
|
331
382
|
|
|
@@ -336,19 +387,12 @@
|
|
|
336
387
|
<div class="pilwrap ">
|
|
337
388
|
<a class="pilcrow" href="#section-20">¶</a>
|
|
338
389
|
</div>
|
|
339
|
-
<p>
|
|
390
|
+
<p>Optionally specify API server and version</p>
|
|
340
391
|
|
|
341
392
|
</div>
|
|
342
393
|
|
|
343
|
-
<div class="content"><div class='highlight'><pre>
|
|
344
|
-
|
|
345
|
-
i = <span class="number">1</span>
|
|
394
|
+
<div class="content"><div class='highlight'><pre> groupdocs.api_server = base_path <span class="comment"># default is 'https://api.groupdocs.com'</span>
|
|
346
395
|
|
|
347
|
-
<span class="keyword">while</span> i<<span class="number">5</span> <span class="keyword">do</span>
|
|
348
|
-
sleep(<span class="number">5</span>)
|
|
349
|
-
job = <span class="constant">GroupDocs::Job</span>.get!(id[<span class="symbol">:job_id</span>])
|
|
350
|
-
<span class="keyword">break</span> <span class="keyword">if</span> job.status == <span class="symbol">:archived</span>
|
|
351
|
-
i = i + <span class="number">1</span>
|
|
352
396
|
<span class="keyword">end</span></pre></div></div>
|
|
353
397
|
|
|
354
398
|
</li>
|
|
@@ -360,13 +404,12 @@
|
|
|
360
404
|
<div class="pilwrap ">
|
|
361
405
|
<a class="pilcrow" href="#section-21">¶</a>
|
|
362
406
|
</div>
|
|
363
|
-
<p>
|
|
407
|
+
<p>Write client and private key to the file for callback job</p>
|
|
364
408
|
|
|
365
409
|
</div>
|
|
366
410
|
|
|
367
|
-
<div class="content"><div class='highlight'><pre>
|
|
368
|
-
|
|
369
|
-
document = file[<span class="symbol">:inputs</span>][<span class="number">0</span>].outputs[<span class="number">0</span>]</pre></div></div>
|
|
411
|
+
<div class="content"><div class='highlight'><pre> <span class="keyword">if</span> settings.callback
|
|
412
|
+
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>
|
|
370
413
|
|
|
371
414
|
</li>
|
|
372
415
|
|
|
@@ -377,11 +420,14 @@
|
|
|
377
420
|
<div class="pilwrap ">
|
|
378
421
|
<a class="pilcrow" href="#section-22">¶</a>
|
|
379
422
|
</div>
|
|
380
|
-
<p>
|
|
423
|
+
<p>White space is required</p>
|
|
381
424
|
|
|
382
425
|
</div>
|
|
383
426
|
|
|
384
|
-
<div class="content"><div class='highlight'><pre>
|
|
427
|
+
<div class="content"><div class='highlight'><pre> out_file.write(<span class="string">"<span class="subst">#{settings.client_id}</span> "</span>)
|
|
428
|
+
out_file.write(<span class="string">"<span class="subst">#{settings.private_key}</span>"</span>)
|
|
429
|
+
out_file.close
|
|
430
|
+
<span class="keyword">end</span></pre></div></div>
|
|
385
431
|
|
|
386
432
|
</li>
|
|
387
433
|
|
|
@@ -392,19 +438,12 @@
|
|
|
392
438
|
<div class="pilwrap ">
|
|
393
439
|
<a class="pilcrow" href="#section-23">¶</a>
|
|
394
440
|
</div>
|
|
395
|
-
<p>Get
|
|
441
|
+
<p>Get document by file GUID</p>
|
|
396
442
|
|
|
397
443
|
</div>
|
|
398
444
|
|
|
399
|
-
<div class="content"><div class='highlight'><pre>
|
|
400
|
-
|
|
401
|
-
<span class="keyword">when</span> <span class="string">'https://stage-api-groupdocs.dynabic.com'</span>
|
|
402
|
-
url = <span class="string">"http://stage-apps-groupdocs.dynabic.com/document-viewer/embed/<span class="subst">#{document.guid}</span>"</span>
|
|
403
|
-
<span class="keyword">when</span> <span class="string">'https://dev-api-groupdocs.dynabic.com'</span>
|
|
404
|
-
url = <span class="string">"http://dev-apps-groupdocs.dynabic.com/document-viewer/embed/<span class="subst">#{document.guid}</span>"</span>
|
|
405
|
-
<span class="keyword">else</span>
|
|
406
|
-
url = <span class="string">"https://apps.groupdocs.com/document-viewer/embed/<span class="subst">#{document.guid}</span>"</span>
|
|
407
|
-
<span class="keyword">end</span></pre></div></div>
|
|
445
|
+
<div class="content"><div class='highlight'><pre> <span class="keyword">case</span> settings.source
|
|
446
|
+
<span class="keyword">when</span> <span class="string">'guid'</span></pre></div></div>
|
|
408
447
|
|
|
409
448
|
</li>
|
|
410
449
|
|
|
@@ -415,15 +454,448 @@
|
|
|
415
454
|
<div class="pilwrap ">
|
|
416
455
|
<a class="pilcrow" href="#section-24">¶</a>
|
|
417
456
|
</div>
|
|
418
|
-
<p>
|
|
457
|
+
<p>Create instance of File</p>
|
|
419
458
|
|
|
420
459
|
</div>
|
|
421
460
|
|
|
422
|
-
<div class="content"><div class='highlight'><pre>
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
461
|
+
<div class="content"><div class='highlight'><pre> file = <span class="constant">GroupDocs::Storage::File</span>.new({<span class="symbol">:guid</span> => settings.file_id})
|
|
462
|
+
<span class="keyword">when</span> <span class="string">'local'</span></pre></div></div>
|
|
463
|
+
|
|
464
|
+
</li>
|
|
465
|
+
|
|
466
|
+
|
|
467
|
+
<li id="section-25">
|
|
468
|
+
<div class="annotation">
|
|
469
|
+
|
|
470
|
+
<div class="pilwrap ">
|
|
471
|
+
<a class="pilcrow" href="#section-25">¶</a>
|
|
472
|
+
</div>
|
|
473
|
+
<p>Construct path</p>
|
|
474
|
+
|
|
475
|
+
</div>
|
|
476
|
+
|
|
477
|
+
<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>
|
|
478
|
+
|
|
479
|
+
</li>
|
|
480
|
+
|
|
481
|
+
|
|
482
|
+
<li id="section-26">
|
|
483
|
+
<div class="annotation">
|
|
484
|
+
|
|
485
|
+
<div class="pilwrap ">
|
|
486
|
+
<a class="pilcrow" href="#section-26">¶</a>
|
|
487
|
+
</div>
|
|
488
|
+
<p>Open file</p>
|
|
489
|
+
|
|
490
|
+
</div>
|
|
491
|
+
|
|
492
|
+
<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>
|
|
493
|
+
|
|
494
|
+
</li>
|
|
495
|
+
|
|
496
|
+
|
|
497
|
+
<li id="section-27">
|
|
498
|
+
<div class="annotation">
|
|
499
|
+
|
|
500
|
+
<div class="pilwrap ">
|
|
501
|
+
<a class="pilcrow" href="#section-27">¶</a>
|
|
502
|
+
</div>
|
|
503
|
+
<p>Make a request to API using client_id and private_key</p>
|
|
504
|
+
|
|
505
|
+
</div>
|
|
506
|
+
|
|
507
|
+
<div class="content"><div class='highlight'><pre> file = <span class="constant">GroupDocs::Storage::File</span>.upload!(file_path, {})
|
|
508
|
+
<span class="keyword">when</span> <span class="string">'url'</span></pre></div></div>
|
|
509
|
+
|
|
510
|
+
</li>
|
|
511
|
+
|
|
512
|
+
|
|
513
|
+
<li id="section-28">
|
|
514
|
+
<div class="annotation">
|
|
515
|
+
|
|
516
|
+
<div class="pilwrap ">
|
|
517
|
+
<a class="pilcrow" href="#section-28">¶</a>
|
|
518
|
+
</div>
|
|
519
|
+
<p>Upload file from defined url</p>
|
|
520
|
+
|
|
521
|
+
</div>
|
|
522
|
+
|
|
523
|
+
<div class="content"><div class='highlight'><pre> file = <span class="constant">GroupDocs::Storage::File</span>.upload_web!(settings.url)
|
|
524
|
+
<span class="keyword">else</span>
|
|
525
|
+
raise <span class="string">'Wrong GUID source.'</span>
|
|
426
526
|
<span class="keyword">end</span>
|
|
527
|
+
guid = file.guid</pre></div></div>
|
|
528
|
+
|
|
529
|
+
</li>
|
|
530
|
+
|
|
531
|
+
|
|
532
|
+
<li id="section-29">
|
|
533
|
+
<div class="annotation">
|
|
534
|
+
|
|
535
|
+
<div class="pilwrap ">
|
|
536
|
+
<a class="pilcrow" href="#section-29">¶</a>
|
|
537
|
+
</div>
|
|
538
|
+
<p>Create document object</p>
|
|
539
|
+
|
|
540
|
+
</div>
|
|
541
|
+
|
|
542
|
+
<div class="content"><div class='highlight'><pre> document = file.to_document</pre></div></div>
|
|
543
|
+
|
|
544
|
+
</li>
|
|
545
|
+
|
|
546
|
+
|
|
547
|
+
<li id="section-30">
|
|
548
|
+
<div class="annotation">
|
|
549
|
+
|
|
550
|
+
<div class="pilwrap ">
|
|
551
|
+
<a class="pilcrow" href="#section-30">¶</a>
|
|
552
|
+
</div>
|
|
553
|
+
<p>Set file sesion callback - will be trigered when user add, remove or edit commit for annotation</p>
|
|
554
|
+
|
|
555
|
+
</div>
|
|
556
|
+
|
|
557
|
+
<div class="content"><div class='highlight'><pre> session = document.set_session_callback! settings.callback</pre></div></div>
|
|
558
|
+
|
|
559
|
+
</li>
|
|
560
|
+
|
|
561
|
+
|
|
562
|
+
<li id="section-31">
|
|
563
|
+
<div class="annotation">
|
|
564
|
+
|
|
565
|
+
<div class="pilwrap ">
|
|
566
|
+
<a class="pilcrow" href="#section-31">¶</a>
|
|
567
|
+
</div>
|
|
568
|
+
<p>Get all users from accaunt</p>
|
|
569
|
+
|
|
570
|
+
</div>
|
|
571
|
+
|
|
572
|
+
<div class="content"><div class='highlight'><pre> users = <span class="constant">GroupDocs::User</span>.new.users!
|
|
573
|
+
user_guid = <span class="keyword">nil</span></pre></div></div>
|
|
574
|
+
|
|
575
|
+
</li>
|
|
576
|
+
|
|
577
|
+
|
|
578
|
+
<li id="section-32">
|
|
579
|
+
<div class="annotation">
|
|
580
|
+
|
|
581
|
+
<div class="pilwrap ">
|
|
582
|
+
<a class="pilcrow" href="#section-32">¶</a>
|
|
583
|
+
</div>
|
|
584
|
+
<p>Number of collaborators</p>
|
|
585
|
+
|
|
586
|
+
</div>
|
|
587
|
+
|
|
588
|
+
<div class="content"><div class='highlight'><pre> number = <span class="constant">Array</span>.new
|
|
589
|
+
<span class="keyword">if</span> users</pre></div></div>
|
|
590
|
+
|
|
591
|
+
</li>
|
|
592
|
+
|
|
593
|
+
|
|
594
|
+
<li id="section-33">
|
|
595
|
+
<div class="annotation">
|
|
596
|
+
|
|
597
|
+
<div class="pilwrap ">
|
|
598
|
+
<a class="pilcrow" href="#section-33">¶</a>
|
|
599
|
+
</div>
|
|
600
|
+
<p>Pass of each email</p>
|
|
601
|
+
|
|
602
|
+
</div>
|
|
603
|
+
|
|
604
|
+
<div class="content"><div class='highlight'><pre> settings.email.each <span class="keyword">do</span> |email|</pre></div></div>
|
|
605
|
+
|
|
606
|
+
</li>
|
|
607
|
+
|
|
608
|
+
|
|
609
|
+
<li id="section-34">
|
|
610
|
+
<div class="annotation">
|
|
611
|
+
|
|
612
|
+
<div class="pilwrap ">
|
|
613
|
+
<a class="pilcrow" href="#section-34">¶</a>
|
|
614
|
+
</div>
|
|
615
|
+
<p>Pass of each user and get user GUID if user with same email already exist</p>
|
|
616
|
+
|
|
617
|
+
</div>
|
|
618
|
+
|
|
619
|
+
<div class="content"><div class='highlight'><pre> users.map <span class="keyword">do</span> |user|
|
|
620
|
+
<span class="keyword">if</span> user.primary_email == email</pre></div></div>
|
|
621
|
+
|
|
622
|
+
</li>
|
|
623
|
+
|
|
624
|
+
|
|
625
|
+
<li id="section-35">
|
|
626
|
+
<div class="annotation">
|
|
627
|
+
|
|
628
|
+
<div class="pilwrap ">
|
|
629
|
+
<a class="pilcrow" href="#section-35">¶</a>
|
|
630
|
+
</div>
|
|
631
|
+
<p>Get user GUID</p>
|
|
632
|
+
|
|
633
|
+
</div>
|
|
634
|
+
|
|
635
|
+
<div class="content"><div class='highlight'><pre> user_guid = user.guid
|
|
636
|
+
<span class="keyword">break</span>
|
|
637
|
+
<span class="keyword">end</span>
|
|
638
|
+
<span class="keyword">end</span></pre></div></div>
|
|
639
|
+
|
|
640
|
+
</li>
|
|
641
|
+
|
|
642
|
+
|
|
643
|
+
<li id="section-36">
|
|
644
|
+
<div class="annotation">
|
|
645
|
+
|
|
646
|
+
<div class="pilwrap ">
|
|
647
|
+
<a class="pilcrow" href="#section-36">¶</a>
|
|
648
|
+
</div>
|
|
649
|
+
<p>Check is user with entered email was founded in GroupDocs account, if not user will be created</p>
|
|
650
|
+
|
|
651
|
+
</div>
|
|
652
|
+
|
|
653
|
+
<div class="content"><div class='highlight'><pre> <span class="keyword">if</span> user_guid.<span class="keyword">nil</span>?</pre></div></div>
|
|
654
|
+
|
|
655
|
+
</li>
|
|
656
|
+
|
|
657
|
+
|
|
658
|
+
<li id="section-37">
|
|
659
|
+
<div class="annotation">
|
|
660
|
+
|
|
661
|
+
<div class="pilwrap ">
|
|
662
|
+
<a class="pilcrow" href="#section-37">¶</a>
|
|
663
|
+
</div>
|
|
664
|
+
<p>Create new User object</p>
|
|
665
|
+
|
|
666
|
+
</div>
|
|
667
|
+
|
|
668
|
+
<div class="content"><div class='highlight'><pre> userNew = <span class="constant">GroupDocs::User</span>.new</pre></div></div>
|
|
669
|
+
|
|
670
|
+
</li>
|
|
671
|
+
|
|
672
|
+
|
|
673
|
+
<li id="section-38">
|
|
674
|
+
<div class="annotation">
|
|
675
|
+
|
|
676
|
+
<div class="pilwrap ">
|
|
677
|
+
<a class="pilcrow" href="#section-38">¶</a>
|
|
678
|
+
</div>
|
|
679
|
+
<p>Set email as entered email</p>
|
|
680
|
+
|
|
681
|
+
</div>
|
|
682
|
+
|
|
683
|
+
<div class="content"><div class='highlight'><pre> userNew.primary_email = settings.email</pre></div></div>
|
|
684
|
+
|
|
685
|
+
</li>
|
|
686
|
+
|
|
687
|
+
|
|
688
|
+
<li id="section-39">
|
|
689
|
+
<div class="annotation">
|
|
690
|
+
|
|
691
|
+
<div class="pilwrap ">
|
|
692
|
+
<a class="pilcrow" href="#section-39">¶</a>
|
|
693
|
+
</div>
|
|
694
|
+
<p>Set first name as entered first name</p>
|
|
695
|
+
|
|
696
|
+
</div>
|
|
697
|
+
|
|
698
|
+
<div class="content"><div class='highlight'><pre> userNew.firstname = settings.email</pre></div></div>
|
|
699
|
+
|
|
700
|
+
</li>
|
|
701
|
+
|
|
702
|
+
|
|
703
|
+
<li id="section-40">
|
|
704
|
+
<div class="annotation">
|
|
705
|
+
|
|
706
|
+
<div class="pilwrap ">
|
|
707
|
+
<a class="pilcrow" href="#section-40">¶</a>
|
|
708
|
+
</div>
|
|
709
|
+
<p>Set last name as entered last name</p>
|
|
710
|
+
|
|
711
|
+
</div>
|
|
712
|
+
|
|
713
|
+
<div class="content"><div class='highlight'><pre> userNew.lastname = settings.email</pre></div></div>
|
|
714
|
+
|
|
715
|
+
</li>
|
|
716
|
+
|
|
717
|
+
|
|
718
|
+
<li id="section-41">
|
|
719
|
+
<div class="annotation">
|
|
720
|
+
|
|
721
|
+
<div class="pilwrap ">
|
|
722
|
+
<a class="pilcrow" href="#section-41">¶</a>
|
|
723
|
+
</div>
|
|
724
|
+
<p>Set roles</p>
|
|
725
|
+
|
|
726
|
+
</div>
|
|
727
|
+
|
|
728
|
+
<div class="content"><div class='highlight'><pre> userNew.roles = [{<span class="symbol">:id</span> => <span class="string">'3'</span>, <span class="symbol">:name</span> => <span class="string">'User'</span>}]</pre></div></div>
|
|
729
|
+
|
|
730
|
+
</li>
|
|
731
|
+
|
|
732
|
+
|
|
733
|
+
<li id="section-42">
|
|
734
|
+
<div class="annotation">
|
|
735
|
+
|
|
736
|
+
<div class="pilwrap ">
|
|
737
|
+
<a class="pilcrow" href="#section-42">¶</a>
|
|
738
|
+
</div>
|
|
739
|
+
<p>Update account</p>
|
|
740
|
+
|
|
741
|
+
</div>
|
|
742
|
+
|
|
743
|
+
<div class="content"><div class='highlight'><pre> new_user = <span class="constant">GroupDocs::User</span>.update_account!(userNew)</pre></div></div>
|
|
744
|
+
|
|
745
|
+
</li>
|
|
746
|
+
|
|
747
|
+
|
|
748
|
+
<li id="section-43">
|
|
749
|
+
<div class="annotation">
|
|
750
|
+
|
|
751
|
+
<div class="pilwrap ">
|
|
752
|
+
<a class="pilcrow" href="#section-43">¶</a>
|
|
753
|
+
</div>
|
|
754
|
+
<p>Get user GUID</p>
|
|
755
|
+
|
|
756
|
+
</div>
|
|
757
|
+
|
|
758
|
+
<div class="content"><div class='highlight'><pre> user_guid = new_user.guid
|
|
759
|
+
<span class="keyword">end</span></pre></div></div>
|
|
760
|
+
|
|
761
|
+
</li>
|
|
762
|
+
|
|
763
|
+
|
|
764
|
+
<li id="section-44">
|
|
765
|
+
<div class="annotation">
|
|
766
|
+
|
|
767
|
+
<div class="pilwrap ">
|
|
768
|
+
<a class="pilcrow" href="#section-44">¶</a>
|
|
769
|
+
</div>
|
|
770
|
+
<p>Get all collaborators for current document</p>
|
|
771
|
+
|
|
772
|
+
</div>
|
|
773
|
+
|
|
774
|
+
<div class="content"><div class='highlight'><pre> collaborators = document.collaborators!
|
|
775
|
+
|
|
776
|
+
<span class="keyword">if</span> collaborators</pre></div></div>
|
|
777
|
+
|
|
778
|
+
</li>
|
|
779
|
+
|
|
780
|
+
|
|
781
|
+
<li id="section-45">
|
|
782
|
+
<div class="annotation">
|
|
783
|
+
|
|
784
|
+
<div class="pilwrap ">
|
|
785
|
+
<a class="pilcrow" href="#section-45">¶</a>
|
|
786
|
+
</div>
|
|
787
|
+
<p>Pass of each collaborator</p>
|
|
788
|
+
|
|
789
|
+
</div>
|
|
790
|
+
|
|
791
|
+
<div class="content"><div class='highlight'><pre> collaborators.map <span class="keyword">do</span> |collaborator|</pre></div></div>
|
|
792
|
+
|
|
793
|
+
</li>
|
|
794
|
+
|
|
795
|
+
|
|
796
|
+
<li id="section-46">
|
|
797
|
+
<div class="annotation">
|
|
798
|
+
|
|
799
|
+
<div class="pilwrap ">
|
|
800
|
+
<a class="pilcrow" href="#section-46">¶</a>
|
|
801
|
+
</div>
|
|
802
|
+
<p>Check is user with entered email already in collaborators</p>
|
|
803
|
+
|
|
804
|
+
</div>
|
|
805
|
+
|
|
806
|
+
<div class="content"><div class='highlight'><pre> <span class="keyword">if</span> collaborator.primary_email == email
|
|
807
|
+
number << collaborator.guid
|
|
808
|
+
<span class="keyword">end</span>
|
|
809
|
+
<span class="keyword">end</span>
|
|
810
|
+
<span class="keyword">end</span>
|
|
811
|
+
<span class="keyword">end</span></pre></div></div>
|
|
812
|
+
|
|
813
|
+
</li>
|
|
814
|
+
|
|
815
|
+
|
|
816
|
+
<li id="section-47">
|
|
817
|
+
<div class="annotation">
|
|
818
|
+
|
|
819
|
+
<div class="pilwrap ">
|
|
820
|
+
<a class="pilcrow" href="#section-47">¶</a>
|
|
821
|
+
</div>
|
|
822
|
+
<p>Delete empty email</p>
|
|
823
|
+
|
|
824
|
+
</div>
|
|
825
|
+
|
|
826
|
+
<div class="content"><div class='highlight'><pre> <span class="keyword">if</span> settings.email[<span class="number">1</span>].empty? <span class="keyword">then</span> settings.email.delete(<span class="string">""</span>) <span class="keyword">end</span></pre></div></div>
|
|
827
|
+
|
|
828
|
+
</li>
|
|
829
|
+
|
|
830
|
+
|
|
831
|
+
<li id="section-48">
|
|
832
|
+
<div class="annotation">
|
|
833
|
+
|
|
834
|
+
<div class="pilwrap ">
|
|
835
|
+
<a class="pilcrow" href="#section-48">¶</a>
|
|
836
|
+
</div>
|
|
837
|
+
<p>Add user as collaborators for the document</p>
|
|
838
|
+
|
|
839
|
+
</div>
|
|
840
|
+
|
|
841
|
+
<div class="content"><div class='highlight'><pre> document.set_collaborators! settings.email <span class="keyword">if</span> number.size < <span class="number">2</span></pre></div></div>
|
|
842
|
+
|
|
843
|
+
</li>
|
|
844
|
+
|
|
845
|
+
|
|
846
|
+
<li id="section-49">
|
|
847
|
+
<div class="annotation">
|
|
848
|
+
|
|
849
|
+
<div class="pilwrap ">
|
|
850
|
+
<a class="pilcrow" href="#section-49">¶</a>
|
|
851
|
+
</div>
|
|
852
|
+
<p>Add user GUID as "uid" parameter to the iframe URL</p>
|
|
853
|
+
|
|
854
|
+
</div>
|
|
855
|
+
|
|
856
|
+
<div class="content"><div class='highlight'><pre> iframe = <span class="string">"/document-annotation2/embed/<span class="subst">#{file.guid}</span>?uid=<span class="subst">#{user_guid}</span>"</span></pre></div></div>
|
|
857
|
+
|
|
858
|
+
</li>
|
|
859
|
+
|
|
860
|
+
|
|
861
|
+
<li id="section-50">
|
|
862
|
+
<div class="annotation">
|
|
863
|
+
|
|
864
|
+
<div class="pilwrap ">
|
|
865
|
+
<a class="pilcrow" href="#section-50">¶</a>
|
|
866
|
+
</div>
|
|
867
|
+
<p>Construct result string</p>
|
|
868
|
+
|
|
869
|
+
</div>
|
|
870
|
+
|
|
871
|
+
<div class="content"><div class='highlight'><pre> url = <span class="constant">GroupDocs::Api::Request</span>.new(<span class="symbol">:path</span> => iframe).prepare_and_sign_url</pre></div></div>
|
|
872
|
+
|
|
873
|
+
</li>
|
|
874
|
+
|
|
875
|
+
|
|
876
|
+
<li id="section-51">
|
|
877
|
+
<div class="annotation">
|
|
878
|
+
|
|
879
|
+
<div class="pilwrap ">
|
|
880
|
+
<a class="pilcrow" href="#section-51">¶</a>
|
|
881
|
+
</div>
|
|
882
|
+
<p>Generate iframe URL</p>
|
|
883
|
+
|
|
884
|
+
</div>
|
|
885
|
+
|
|
886
|
+
<div class="content"><div class='highlight'><pre> <span class="keyword">case</span> base_path
|
|
887
|
+
<span class="keyword">when</span> <span class="string">'https://stage-api-groupdocs.dynabic.com'</span>
|
|
888
|
+
iframe = <span class="string">"https://stage-api-groupdocs.dynabic.com<span class="subst">#{url}</span>"</span>
|
|
889
|
+
<span class="keyword">when</span> <span class="string">'https://dev-api-groupdocs.dynabic.com'</span>
|
|
890
|
+
iframe = <span class="string">"https://dev-apps.groupdocs.com<span class="subst">#{url}</span>"</span>
|
|
891
|
+
<span class="keyword">else</span>
|
|
892
|
+
iframe = <span class="string">"https://apps.groupdocs.com<span class="subst">#{url}</span>"</span>
|
|
893
|
+
<span class="keyword">end</span>
|
|
894
|
+
|
|
895
|
+
iframe = <span class="string">"<iframe src='<span class="subst">#{iframe}</span>' id='downloadframe' width='800' height='1000'></iframe>"</span>
|
|
896
|
+
<span class="keyword">end</span>
|
|
897
|
+
|
|
898
|
+
|
|
427
899
|
<span class="keyword">rescue</span> <span class="constant">Exception</span> => e
|
|
428
900
|
err = e.message
|
|
429
901
|
<span class="keyword">end</span></pre></div></div>
|
|
@@ -431,17 +903,17 @@
|
|
|
431
903
|
</li>
|
|
432
904
|
|
|
433
905
|
|
|
434
|
-
<li id="section-
|
|
906
|
+
<li id="section-52">
|
|
435
907
|
<div class="annotation">
|
|
436
908
|
|
|
437
909
|
<div class="pilwrap ">
|
|
438
|
-
<a class="pilcrow" href="#section-
|
|
910
|
+
<a class="pilcrow" href="#section-52">¶</a>
|
|
439
911
|
</div>
|
|
440
912
|
<p>Set variables for template</p>
|
|
441
913
|
|
|
442
914
|
</div>
|
|
443
915
|
|
|
444
|
-
<div class="content"><div class='highlight'><pre> haml <span class="symbol">:sample41</span>, <span class="symbol">:locals</span> => {<span class="symbol">:userId</span> => settings.client_id, <span class="symbol">:privateKey</span> => settings.private_key, <span class="symbol">:
|
|
916
|
+
<div class="content"><div class='highlight'><pre> haml <span class="symbol">:sample41</span>, <span class="symbol">:locals</span> => {<span class="symbol">:userId</span> => settings.client_id, <span class="symbol">:fileId</span> => settings.file_id, <span class="symbol">:privateKey</span> => settings.private_key, <span class="symbol">:iframe</span> => iframe, <span class="symbol">:callbackUrl</span> => settings.callback, <span class="symbol">:err</span> => err}
|
|
445
917
|
<span class="keyword">end</span></pre></div></div>
|
|
446
918
|
|
|
447
919
|
</li>
|