groupdocs 1.5.0 → 1.5.1
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 +6 -0
- data/examples/api-samples/README.md +1 -1
- data/examples/api-samples/public/css/style.css +2 -2
- data/examples/api-samples/public/docs/annotation-sample.html +57 -0
- data/examples/api-samples/public/docs/envelope-sample.html +32 -32
- data/examples/api-samples/public/docs/sample1.html +3 -3
- data/examples/api-samples/public/docs/sample10.html +25 -24
- data/examples/api-samples/public/docs/sample11.html +17 -17
- data/examples/api-samples/public/docs/sample12.html +4 -4
- data/examples/api-samples/public/docs/sample13.html +5 -5
- data/examples/api-samples/public/docs/sample14.html +5 -5
- data/examples/api-samples/public/docs/sample15.html +4 -4
- data/examples/api-samples/public/docs/sample16.html +3 -3
- data/examples/api-samples/public/docs/sample17.html +3 -3
- data/examples/api-samples/public/docs/sample18.html +129 -34
- data/examples/api-samples/public/docs/sample19.html +59 -0
- data/examples/api-samples/public/docs/sample2.html +5 -5
- data/examples/api-samples/public/docs/sample20.html +51 -0
- data/examples/api-samples/public/docs/sample21.html +66 -0
- data/examples/api-samples/public/docs/sample22.html +53 -0
- data/examples/api-samples/public/docs/sample3.html +4 -4
- data/examples/api-samples/public/docs/sample4.html +27 -16
- data/examples/api-samples/public/docs/sample5.html +29 -22
- data/examples/api-samples/public/docs/sample6.html +6 -6
- data/examples/api-samples/public/docs/sample7.html +8 -8
- data/examples/api-samples/public/docs/sample8.html +31 -23
- data/examples/api-samples/public/docs/sample9.html +26 -8
- data/examples/api-samples/public/templates/merge_feid_doc.docx +0 -0
- data/examples/api-samples/samples/annotation-sample.rb +22 -16
- data/examples/api-samples/samples/envelope-sample.rb +26 -25
- data/examples/api-samples/samples/sample1.rb +2 -2
- data/examples/api-samples/samples/sample10.rb +21 -20
- data/examples/api-samples/samples/sample11.rb +18 -18
- data/examples/api-samples/samples/sample12.rb +3 -3
- data/examples/api-samples/samples/sample13.rb +4 -4
- data/examples/api-samples/samples/sample14.rb +4 -4
- data/examples/api-samples/samples/sample15.rb +3 -3
- data/examples/api-samples/samples/sample16.rb +2 -2
- data/examples/api-samples/samples/sample17.rb +2 -2
- data/examples/api-samples/samples/sample18.rb +90 -106
- data/examples/api-samples/samples/sample19.rb +5 -5
- data/examples/api-samples/samples/sample2.rb +4 -4
- data/examples/api-samples/samples/sample20.rb +4 -4
- data/examples/api-samples/samples/sample21.rb +4 -4
- data/examples/api-samples/samples/sample22.rb +2 -2
- data/examples/api-samples/samples/sample23.rb +0 -0
- data/examples/api-samples/samples/sample24.rb +0 -0
- data/examples/api-samples/samples/sample25.rb +96 -0
- data/examples/api-samples/samples/sample3.rb +3 -3
- data/examples/api-samples/samples/sample4.rb +23 -12
- data/examples/api-samples/samples/sample5.rb +23 -16
- data/examples/api-samples/samples/sample6.rb +8 -8
- data/examples/api-samples/samples/sample7.rb +7 -7
- data/examples/api-samples/samples/sample8.rb +29 -21
- data/examples/api-samples/samples/sample9.rb +23 -5
- data/examples/api-samples/views/_others_samples.haml +57 -0
- data/examples/api-samples/views/annotation_sample.haml +30 -30
- data/examples/api-samples/views/envelope_sample.haml +31 -31
- data/examples/api-samples/views/index.haml +33 -25
- data/examples/api-samples/views/sample1.haml +22 -69
- data/examples/api-samples/views/sample10.haml +57 -73
- data/examples/api-samples/views/sample11.haml +31 -79
- data/examples/api-samples/views/sample12.haml +18 -66
- data/examples/api-samples/views/sample13.haml +21 -70
- data/examples/api-samples/views/sample14.haml +18 -67
- data/examples/api-samples/views/sample15.haml +15 -63
- data/examples/api-samples/views/sample16.haml +13 -61
- data/examples/api-samples/views/sample17.haml +19 -67
- data/examples/api-samples/views/sample18.haml +74 -159
- data/examples/api-samples/views/sample19.haml +25 -74
- data/examples/api-samples/views/sample2.haml +19 -66
- data/examples/api-samples/views/sample20.haml +19 -68
- data/examples/api-samples/views/sample21.haml +28 -76
- data/examples/api-samples/views/sample22.haml +29 -77
- data/examples/api-samples/views/sample23.haml +0 -0
- data/examples/api-samples/views/sample24.haml +0 -0
- data/examples/api-samples/views/sample25.haml +91 -0
- data/examples/api-samples/views/sample3.haml +20 -68
- data/examples/api-samples/views/sample4.haml +53 -68
- data/examples/api-samples/views/sample5.haml +54 -70
- data/examples/api-samples/views/sample6.haml +21 -69
- data/examples/api-samples/views/sample7.haml +19 -66
- data/examples/api-samples/views/sample8.haml +60 -75
- data/examples/api-samples/views/sample9.haml +54 -70
- data/examples/api-samples/web.rb +20 -0
- data/lib/groupdocs/api/request.rb +4 -2
- data/lib/groupdocs/version.rb +1 -1
- data/spec/groupdocs/api/request_spec.rb +10 -2
- metadata +18 -5
- data/examples/api-samples/app.rb +0 -15
@@ -1,21 +1,39 @@
|
|
1
|
-
<!DOCTYPE html> <html> <head> <title>sample9.rb</title> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <link rel="stylesheet" media="all" href="docco.css" /> </head> <body> <div id="container"> <div id="background"></div> <div id="jump_to"> Jump To … <div id="jump_wrapper"> <div id="jump_page"> <a class="source" href="envelope-sample.html"> envelope-sample.rb </a> <a class="source" href="sample1.html"> sample1.rb </a> <a class="source" href="sample10.html"> sample10.rb </a> <a class="source" href="sample11.html"> sample11.rb </a> <a class="source" href="sample12.html"> sample12.rb </a> <a class="source" href="sample13.html"> sample13.rb </a> <a class="source" href="sample14.html"> sample14.rb </a> <a class="source" href="sample15.html"> sample15.rb </a> <a class="source" href="sample16.html"> sample16.rb </a> <a class="source" href="sample17.html"> sample17.rb </a> <a class="source" href="sample18.html"> sample18.rb </a> <a class="source" href="sample2.html"> sample2.rb </a> <a class="source" href="sample3.html"> sample3.rb </a> <a class="source" href="sample4.html"> sample4.rb </a> <a class="source" href="sample5.html"> sample5.rb </a> <a class="source" href="sample6.html"> sample6.rb </a> <a class="source" href="sample7.html"> sample7.rb </a> <a class="source" href="sample8.html"> sample8.rb </a> <a class="source" href="sample9.html"> sample9.rb </a> </div> </div> </div> <table cellpadding="0" cellspacing="0"> <thead> <tr> <th class="docs"> <h1> sample9.rb </h1> </th> <th class="code"> </th> </tr> </thead> <tbody> <tr id="section-1"> <td class="docs"> <div class="pilwrap"> <a class="pilcrow" href="#section-1">¶</a> </div> <p>GET request</p> </td> <td class="code"> <div class="highlight"><pre><span class="n">get</span> <span class="s1">'/sample9'</span> <span class="k">do</span>
|
1
|
+
<!DOCTYPE html> <html> <head> <title>sample9.rb</title> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <link rel="stylesheet" media="all" href="docco.css" /> </head> <body> <div id="container"> <div id="background"></div> <div id="jump_to"> Jump To … <div id="jump_wrapper"> <div id="jump_page"> <a class="source" href="annotation-sample.html"> annotation-sample.rb </a> <a class="source" href="envelope-sample.html"> envelope-sample.rb </a> <a class="source" href="sample1.html"> sample1.rb </a> <a class="source" href="sample10.html"> sample10.rb </a> <a class="source" href="sample11.html"> sample11.rb </a> <a class="source" href="sample12.html"> sample12.rb </a> <a class="source" href="sample13.html"> sample13.rb </a> <a class="source" href="sample14.html"> sample14.rb </a> <a class="source" href="sample15.html"> sample15.rb </a> <a class="source" href="sample16.html"> sample16.rb </a> <a class="source" href="sample17.html"> sample17.rb </a> <a class="source" href="sample18.html"> sample18.rb </a> <a class="source" href="sample19.html"> sample19.rb </a> <a class="source" href="sample2.html"> sample2.rb </a> <a class="source" href="sample20.html"> sample20.rb </a> <a class="source" href="sample21.html"> sample21.rb </a> <a class="source" href="sample22.html"> sample22.rb </a> <a class="source" href="sample3.html"> sample3.rb </a> <a class="source" href="sample4.html"> sample4.rb </a> <a class="source" href="sample5.html"> sample5.rb </a> <a class="source" href="sample6.html"> sample6.rb </a> <a class="source" href="sample7.html"> sample7.rb </a> <a class="source" href="sample8.html"> sample8.rb </a> <a class="source" href="sample9.html"> sample9.rb </a> </div> </div> </div> <table cellpadding="0" cellspacing="0"> <thead> <tr> <th class="docs"> <h1> sample9.rb </h1> </th> <th class="code"> </th> </tr> </thead> <tbody> <tr id="section-1"> <td class="docs"> <div class="pilwrap"> <a class="pilcrow" href="#section-1">¶</a> </div> <p>GET request</p> </td> <td class="code"> <div class="highlight"><pre><span class="n">get</span> <span class="s1">'/sample9'</span> <span class="k">do</span>
|
2
2
|
<span class="n">haml</span> <span class="ss">:sample9</span>
|
3
3
|
<span class="k">end</span>
|
4
4
|
|
5
5
|
|
6
6
|
<span class="n">post</span> <span class="s1">'/sample9'</span> <span class="k">do</span>
|
7
7
|
|
8
|
-
<span class="n">set</span> <span class="ss">:
|
8
|
+
<span class="n">set</span> <span class="ss">:file_id</span><span class="p">,</span> <span class="n">params</span><span class="o">[</span><span class="ss">:fileId</span><span class="o">]</span>
|
9
9
|
<span class="n">set</span> <span class="ss">:width</span><span class="p">,</span> <span class="n">params</span><span class="o">[</span><span class="ss">:width</span><span class="o">]</span>
|
10
10
|
<span class="n">set</span> <span class="ss">:height</span><span class="p">,</span> <span class="n">params</span><span class="o">[</span><span class="ss">:height</span><span class="o">]</span>
|
11
11
|
|
12
12
|
<span class="k">begin</span>
|
13
13
|
|
14
|
-
<span class="k">raise</span> <span class="
|
14
|
+
<span class="k">raise</span> <span class="s1">'Please enter all required parameters'</span> <span class="k">if</span> <span class="n">settings</span><span class="o">.</span><span class="n">guid</span><span class="o">.</span><span class="n">empty?</span> <span class="ow">or</span> <span class="n">settings</span><span class="o">.</span><span class="n">width</span><span class="o">.</span><span class="n">empty?</span> <span class="ow">or</span> <span class="n">settings</span><span class="o">.</span><span class="n">height</span><span class="o">.</span><span class="n">empty?</span>
|
15
|
+
|
16
|
+
|
17
|
+
<span class="n">file</span> <span class="o">=</span> <span class="kp">nil</span>
|
18
|
+
<span class="k">case</span> <span class="n">settings</span><span class="o">.</span><span class="n">source</span>
|
19
|
+
<span class="k">when</span> <span class="s1">'guid'</span>
|
20
|
+
<span class="n">file</span> <span class="o">=</span> <span class="ss">GroupDocs</span><span class="p">:</span><span class="ss">:Storage</span><span class="o">::</span><span class="no">File</span><span class="o">.</span><span class="n">new</span><span class="p">({</span><span class="ss">:guid</span> <span class="o">=></span> <span class="n">settings</span><span class="o">.</span><span class="n">file_id</span><span class="p">})</span>
|
21
|
+
<span class="k">when</span> <span class="s1">'local'</span>
|
22
|
+
|
23
|
+
<span class="n">filepath</span> <span class="o">=</span> <span class="s2">"</span><span class="si">#{</span><span class="no">Dir</span><span class="o">.</span><span class="n">tmpdir</span><span class="si">}</span><span class="s2">/</span><span class="si">#{</span><span class="n">params</span><span class="o">[</span><span class="ss">:file</span><span class="o">][</span><span class="ss">:filename</span><span class="o">]</span><span class="si">}</span><span class="s2">"</span>
|
24
|
+
|
25
|
+
<span class="no">File</span><span class="o">.</span><span class="n">open</span><span class="p">(</span><span class="n">filepath</span><span class="p">,</span> <span class="s1">'wb'</span><span class="p">)</span> <span class="p">{</span> <span class="o">|</span><span class="n">f</span><span class="o">|</span> <span class="n">f</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">params</span><span class="o">[</span><span class="ss">:file</span><span class="o">][</span><span class="ss">:tempfile</span><span class="o">].</span><span class="n">read</span><span class="p">)</span> <span class="p">}</span>
|
26
|
+
|
27
|
+
<span class="n">file</span> <span class="o">=</span> <span class="ss">GroupDocs</span><span class="p">:</span><span class="ss">:Storage</span><span class="o">::</span><span class="no">File</span><span class="o">.</span><span class="n">upload!</span><span class="p">(</span><span class="n">filepath</span><span class="p">,</span> <span class="p">{},</span> <span class="n">client_id</span><span class="p">:</span> <span class="n">settings</span><span class="o">.</span><span class="n">client_id</span><span class="p">,</span> <span class="n">private_key</span><span class="p">:</span> <span class="n">settings</span><span class="o">.</span><span class="n">private_key</span><span class="p">)</span>
|
28
|
+
<span class="k">when</span> <span class="s1">'url'</span>
|
29
|
+
<span class="n">file</span> <span class="o">=</span> <span class="ss">GroupDocs</span><span class="p">:</span><span class="ss">:Storage</span><span class="o">::</span><span class="no">File</span><span class="o">.</span><span class="n">upload_web!</span><span class="p">(</span><span class="n">settings</span><span class="o">.</span><span class="n">url</span><span class="p">,</span> <span class="n">client_id</span><span class="p">:</span> <span class="n">settings</span><span class="o">.</span><span class="n">client_id</span><span class="p">,</span> <span class="n">private_key</span><span class="p">:</span> <span class="n">settings</span><span class="o">.</span><span class="n">private_key</span><span class="p">)</span>
|
30
|
+
<span class="k">else</span>
|
31
|
+
<span class="k">raise</span> <span class="s1">'Wrong GUID source.'</span>
|
32
|
+
<span class="k">end</span>
|
33
|
+
|
34
|
+
|
35
|
+
<span class="n">v_url</span> <span class="o">=</span> <span class="s2">"https://apps.groupdocs.com/document-viewer/embed/</span><span class="si">#{</span><span class="n">file</span><span class="o">.</span><span class="n">guid</span><span class="si">}</span><span class="s2">?frameborder='0' width='</span><span class="si">#{</span><span class="n">settings</span><span class="o">.</span><span class="n">width</span><span class="si">}</span><span class="s2">' height='</span><span class="si">#{</span><span class="n">settings</span><span class="o">.</span><span class="n">height</span><span class="si">}</span><span class="s2">'"</span>
|
15
36
|
|
16
|
-
|
17
|
-
<span class="n">v_url</span> <span class="o">=</span> <span class="s2">"https://apps.groupdocs.com/document-viewer/embed/</span><span class="si">#{</span><span class="n">settings</span><span class="o">.</span><span class="n">guid</span><span class="si">}</span><span class="s2">?frameborder='0' width='</span><span class="si">#{</span><span class="n">settings</span><span class="o">.</span><span class="n">width</span><span class="si">}</span><span class="s2">' height='</span><span class="si">#{</span><span class="n">settings</span><span class="o">.</span><span class="n">height</span><span class="si">}</span><span class="s2">'"</span>
|
18
|
-
|
19
37
|
<span class="k">if</span> <span class="n">v_url</span>
|
20
38
|
<span class="n">v_url</span> <span class="o">=</span> <span class="n">v_url</span>
|
21
39
|
<span class="k">end</span>
|
@@ -24,8 +42,8 @@
|
|
24
42
|
<span class="n">err</span> <span class="o">=</span> <span class="n">e</span><span class="o">.</span><span class="n">message</span>
|
25
43
|
<span class="k">end</span>
|
26
44
|
|
27
|
-
|
28
|
-
<span class="n">haml</span> <span class="ss">:sample9</span><span class="p">,</span> <span class="ss">:locals</span> <span class="o">=></span> <span class="p">{</span
|
45
|
+
|
46
|
+
<span class="n">haml</span> <span class="ss">:sample9</span><span class="p">,</span> <span class="ss">:locals</span> <span class="o">=></span> <span class="p">{</span><span class="ss">:guid</span> <span class="o">=></span> <span class="n">settings</span><span class="o">.</span><span class="n">guid</span><span class="p">,</span> <span class="ss">:width</span> <span class="o">=></span> <span class="n">settings</span><span class="o">.</span><span class="n">width</span><span class="p">,</span> <span class="ss">:height</span> <span class="o">=></span> <span class="n">settings</span><span class="o">.</span><span class="n">height</span><span class="p">,</span> <span class="ss">:v_url</span> <span class="o">=></span> <span class="n">v_url</span><span class="p">,</span> <span class="ss">:err</span> <span class="o">=></span> <span class="n">err</span><span class="p">}</span>
|
29
47
|
<span class="k">end</span>
|
30
48
|
|
31
49
|
</pre></div> </td> </tr> </tbody> </table> </div> </body> </html>
|
Binary file
|
@@ -7,10 +7,14 @@ end
|
|
7
7
|
post '/annotation-sample' do
|
8
8
|
set :client_id, params[:client_id]
|
9
9
|
set :private_key, params[:private_key]
|
10
|
+
|
11
|
+
set :email, params[:email]
|
12
|
+
set :first_name, params[:first_name]
|
13
|
+
set :last_name, params[:last_name]
|
10
14
|
set :file_name, params[:file_name]
|
11
15
|
|
12
16
|
begin
|
13
|
-
raise
|
17
|
+
raise 'Please enter all required parameters' if settings.client_id.empty? or settings.private_key.empty? or settings.file_name.empty?
|
14
18
|
|
15
19
|
GroupDocs.configure do |groupdocs|
|
16
20
|
groupdocs.client_id = params[:client_id]
|
@@ -18,33 +22,35 @@ post '/annotation-sample' do
|
|
18
22
|
groupdocs.api_server = 'https://api.groupdocs.com'
|
19
23
|
end
|
20
24
|
# get document metadata
|
21
|
-
metadata = GroupDocs::Document.metadata!(
|
25
|
+
metadata = GroupDocs::Document.metadata!(settings.file_name)
|
22
26
|
document = GroupDocs::Storage::File.new(id: metadata.id, guid: metadata.guid).to_document
|
23
|
-
|
27
|
+
|
24
28
|
# create new user
|
25
29
|
user = GroupDocs::User.new
|
26
|
-
user.nickname =
|
27
|
-
user.primary_email =
|
28
|
-
user.first_name =
|
29
|
-
user.last_name =
|
30
|
+
user.nickname = settings.email
|
31
|
+
user.primary_email = settings.email
|
32
|
+
user.first_name = settings.first_name
|
33
|
+
user.last_name = settings.last_name
|
30
34
|
user = GroupDocs::User.update_account!(user)
|
31
|
-
|
35
|
+
|
32
36
|
# add collaborator
|
33
37
|
document.add_collaborator! user unless document.collaborators!.any? { |c| c.guid == user.guid }
|
34
|
-
|
38
|
+
|
35
39
|
# build url
|
36
40
|
annotation = true # looks like "IsAnnotation" is some helper method so I stub it here
|
37
41
|
url = if annotation
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
+
"/document-annotation2/embed?quality=50&guid=#{document.file.guid}&uid=#{user.guid}&download=True"
|
43
|
+
else
|
44
|
+
"/document-viewer/embed?quality=50&guid=#{document.file.guid}&uid=#{user.guid}&download=True"
|
45
|
+
end
|
46
|
+
|
47
|
+
# you can sign document
|
48
|
+
#url = GroupDocs::Api::Request.new(path: url).prepare_and_sign_url
|
42
49
|
|
43
|
-
|
44
|
-
iframe_url = "https://apps.groupdocs.com#{url}"
|
50
|
+
iframe = "<iframe src='https://apps.groupdocs.com#{url}' frameborder='0' width='720' height='600'></iframe>"
|
45
51
|
rescue Exception => e
|
46
52
|
err = e.message
|
47
53
|
end
|
48
54
|
|
49
|
-
haml :annotation_sample, :locals => {
|
55
|
+
haml :annotation_sample, :locals => {:client_id => settings.client_id, :private_key => settings.private_key, :err => err, :file_name => settings.file_name, :email => settings.email, :first_name => settings.first_name, :last_name => settings.last_name, :iframe => iframe}
|
50
56
|
end
|
@@ -8,13 +8,13 @@ post '/envelope-sample/sign' do
|
|
8
8
|
# Content Type of callback is application/json
|
9
9
|
data = JSON.parse(request.body.read)
|
10
10
|
begin
|
11
|
-
raise
|
11
|
+
raise 'Empty params!' if data.empty?
|
12
12
|
#create empty file and write data as "key: value" to it
|
13
|
-
|
13
|
+
out_file = File.new('signed', 'w')
|
14
14
|
data.each do |key, value|
|
15
|
-
|
15
|
+
out_file.write("#{key}: #{value} \n")
|
16
16
|
end
|
17
|
-
|
17
|
+
out_file.close
|
18
18
|
rescue Exception => e
|
19
19
|
err = e.message
|
20
20
|
end
|
@@ -24,18 +24,18 @@ end
|
|
24
24
|
# POST request to handle callback and download envelop when document was signed
|
25
25
|
post '/envelope-sample/sign-and-download' do
|
26
26
|
data = JSON.parse(request.body.read)
|
27
|
-
begin
|
28
|
-
raise
|
27
|
+
begin
|
28
|
+
raise 'Empty params!' if data.empty?
|
29
29
|
GroupDocs.configure do |groupdocs|
|
30
|
-
|
31
|
-
|
32
|
-
|
30
|
+
groupdocs.client_id = '' # Your client Client ID here
|
31
|
+
groupdocs.private_key = '' # Your API Key here
|
32
|
+
groupdocs.api_server = 'https://api.groupdocs.com'
|
33
33
|
end
|
34
34
|
data.each do |key, value|
|
35
35
|
if key == 'SourceId'
|
36
36
|
# Create envelop with id and name as SourceId parameter from callback
|
37
37
|
envelope = GroupDocs::Signature::Envelope.new id: value,
|
38
|
-
|
38
|
+
name: value
|
39
39
|
# download signed documents as archive
|
40
40
|
envelope.signed_documents! '.'
|
41
41
|
end
|
@@ -50,7 +50,7 @@ get '/envelope-sample/check' do
|
|
50
50
|
if File.exist?('signed')
|
51
51
|
File.readlines('signed').each do |line|
|
52
52
|
end
|
53
|
-
else
|
53
|
+
else
|
54
54
|
'Have not signed yet'
|
55
55
|
end
|
56
56
|
end
|
@@ -61,41 +61,41 @@ post '/envelope-sample' do
|
|
61
61
|
set :private_key, params[:private_key]
|
62
62
|
|
63
63
|
begin
|
64
|
-
raise
|
64
|
+
raise 'Please enter all required parameters' if settings.client_id.empty? or settings.private_key.empty?
|
65
65
|
|
66
66
|
GroupDocs.configure do |groupdocs|
|
67
67
|
groupdocs.client_id = params[:client_id]
|
68
68
|
groupdocs.private_key = params[:private_key]
|
69
69
|
groupdocs.api_server = 'https://stage-api.groupdocs.com'
|
70
70
|
end
|
71
|
-
|
71
|
+
|
72
72
|
# upload document
|
73
73
|
filepath = "#{Dir.tmpdir}/#{params[:file][:filename]}"
|
74
74
|
File.open(filepath, 'wb') { |f| f.write(params[:file][:tempfile].read) }
|
75
75
|
file = GroupDocs::Storage::File.upload!(filepath, {}, client_id: settings.client_id, private_key: settings.private_key)
|
76
76
|
document = file.to_document
|
77
|
-
|
77
|
+
|
78
78
|
# create envelope
|
79
79
|
envelope = GroupDocs::Signature::Envelope.new
|
80
|
-
envelope.name =
|
81
|
-
envelope.email_subject =
|
80
|
+
envelope.name = 'Envelope'
|
81
|
+
envelope.email_subject = 'Sing this!'
|
82
82
|
envelope.create!
|
83
|
-
|
83
|
+
|
84
84
|
# add document to envelope
|
85
85
|
envelope.add_document! document
|
86
|
-
|
86
|
+
|
87
87
|
# update document object after it's created
|
88
88
|
document = envelope.documents!.first
|
89
|
-
|
89
|
+
|
90
90
|
# add new recipient to envelope
|
91
91
|
roles = GroupDocs::Signature::Role.get!
|
92
92
|
recipient = GroupDocs::Signature::Recipient.new
|
93
93
|
recipient.email = 'john@smith.com'
|
94
94
|
recipient.first_name = 'John'
|
95
95
|
recipient.last_name = 'Smith'
|
96
|
-
recipient.role_id = roles.detect { |role| role.name ==
|
96
|
+
recipient.role_id = roles.detect { |role| role.name == 'Signer' }.id
|
97
97
|
envelope.add_recipient! recipient
|
98
|
-
|
98
|
+
|
99
99
|
# update recipient object after it's created
|
100
100
|
recipient = envelope.recipients!.first
|
101
101
|
|
@@ -108,18 +108,19 @@ post '/envelope-sample' do
|
|
108
108
|
#field.name = 'City'
|
109
109
|
#field.location = { location_x: 0.3, location_y: 0.2, page: 1 }
|
110
110
|
#envelope.add_field! field, document, recipient
|
111
|
-
|
111
|
+
|
112
112
|
# add signature field to envelope
|
113
113
|
#field = GroupDocs::Signature::Field.get!.detect { |f| f.type == :signature }
|
114
114
|
#field.location = { location_x: 0.3, location_y: 0.3, page: 1 }
|
115
115
|
#envelope.add_field! field, document, recipient
|
116
116
|
|
117
117
|
# URL for callback
|
118
|
-
webhook = 'http://groupdocs-ruby-samples.herokuapp.com/envelope-sample/sign'
|
118
|
+
#webhook = 'http://groupdocs-ruby-samples.herokuapp.com/envelope-sample/sign'
|
119
|
+
webhook = 'http://77.81.243.48/?q=groupdocs_signature/signature_callback'
|
119
120
|
|
120
121
|
# send envelope
|
121
122
|
envelope.send! webhook
|
122
|
-
|
123
|
+
|
123
124
|
# construct embedded signature url
|
124
125
|
url = "https://stage-apps.groupdocs.com/signature/signembed/#{envelope.id}/#{recipient.id}"
|
125
126
|
iframe = "<iframe src='#{url}' frameborder='0' width='720' height='600'></iframe>"
|
@@ -128,5 +129,5 @@ post '/envelope-sample' do
|
|
128
129
|
err = e.message
|
129
130
|
end
|
130
131
|
|
131
|
-
haml :envelope_sample, :locals => {
|
132
|
+
haml :envelope_sample, :locals => {:client_id => settings.client_id, :private_key => settings.private_key, :err => err, :iframe => iframe}
|
132
133
|
end
|
@@ -11,7 +11,7 @@ post '/sample1' do
|
|
11
11
|
|
12
12
|
begin
|
13
13
|
# check required variables
|
14
|
-
raise
|
14
|
+
raise 'Please enter all required parameters' if settings.client_id.empty? or settings.private_key.empty?
|
15
15
|
|
16
16
|
# make a request to API using client_id and private_key
|
17
17
|
user = GroupDocs::User.get!({:client_id => settings.client_id, :private_key => settings.private_key})
|
@@ -21,5 +21,5 @@ post '/sample1' do
|
|
21
21
|
end
|
22
22
|
|
23
23
|
# set variables for template
|
24
|
-
haml :sample1, :locals => {
|
24
|
+
haml :sample1, :locals => {:userId => settings.client_id, :privateKey => settings.private_key, :user => user, :err => err}
|
25
25
|
end
|
@@ -8,32 +8,33 @@ post '/sample10' do
|
|
8
8
|
# set variables
|
9
9
|
set :client_id, params[:client_id]
|
10
10
|
set :private_key, params[:private_key]
|
11
|
-
set :guid, params[:
|
11
|
+
set :guid, params[:fileId]
|
12
12
|
set :email, params[:email]
|
13
13
|
|
14
14
|
begin
|
15
15
|
# check required variables
|
16
|
-
raise
|
17
|
-
|
18
|
-
#
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
16
|
+
raise 'Please enter all required parameters' if settings.client_id.empty? or settings.private_key.empty? or settings.guid.empty? or settings.email.empty?
|
17
|
+
|
18
|
+
# get document by file GUID
|
19
|
+
file = nil
|
20
|
+
case settings.source
|
21
|
+
when 'guid'
|
22
|
+
file = GroupDocs::Storage::File.new({:guid => settings.guid})
|
23
|
+
when 'local'
|
24
|
+
# construct path
|
25
|
+
filepath = "#{Dir.tmpdir}/#{params[:file][:filename]}"
|
26
|
+
# open file
|
27
|
+
File.open(filepath, 'wb') { |f| f.write(params[:file][:tempfile].read) }
|
28
|
+
# make a request to API using client_id and private_key
|
29
|
+
file = GroupDocs::Storage::File.upload!(filepath, {}, client_id: settings.client_id, private_key: settings.private_key)
|
30
|
+
when 'url'
|
31
|
+
file = GroupDocs::Storage::File.upload_web!(settings.url, client_id: settings.client_id, private_key: settings.private_key)
|
32
|
+
else
|
33
|
+
raise 'Wrong GUID source.'
|
33
34
|
end
|
34
35
|
|
35
36
|
# Share document. Make a request to API using client_id and private_key
|
36
|
-
shared =
|
37
|
+
shared = file.to_document.sharers_set!(settings.email.split(' '), {:client_id => settings.client_id, :private_key => settings.private_key})
|
37
38
|
|
38
39
|
# result
|
39
40
|
if shared
|
@@ -44,5 +45,5 @@ post '/sample10' do
|
|
44
45
|
end
|
45
46
|
|
46
47
|
# set variables for template
|
47
|
-
haml :sample10, :locals => {
|
48
|
+
haml :sample10, :locals => {:client_id => settings.client_id, :private_key => settings.private_key, :guid => settings.guid, :email => settings.email, :shared => shared_emails, :err => err}
|
48
49
|
end
|
@@ -13,28 +13,28 @@ post '/sample11' do
|
|
13
13
|
|
14
14
|
begin
|
15
15
|
# check required variables
|
16
|
-
raise
|
16
|
+
raise 'Please enter all required parameters' if settings.client_id.empty? or settings.private_key.empty? or settings.file_id.empty? or settings.annotation_type.empty?
|
17
17
|
|
18
18
|
# annotation types
|
19
|
-
types = {
|
19
|
+
types = {:text => 0, :area => 1, :point => 2}
|
20
20
|
|
21
21
|
# required parameters
|
22
|
-
|
22
|
+
all_params = all_params = ['annotation_type', 'box_x', 'box_y', 'text']
|
23
23
|
|
24
24
|
# added required parameters depends on annotation type ['text' or 'area']
|
25
|
-
if settings.annotation_type ==
|
26
|
-
|
27
|
-
elsif settings.annotation_type ==
|
28
|
-
|
25
|
+
if settings.annotation_type == 'text'
|
26
|
+
all_params = all_params | ['box_width', 'box_height', 'annotationPosition_x', 'annotationPosition_y']
|
27
|
+
elsif settings.annotation_type == 'area'
|
28
|
+
all_params = all_params | ['box_width', 'box_height']
|
29
29
|
end
|
30
30
|
|
31
31
|
# checking required parameters
|
32
|
-
|
33
|
-
raise
|
32
|
+
all_params.each do |param|
|
33
|
+
raise 'Please enter all required parameters' if params[param].empty?
|
34
34
|
end
|
35
35
|
|
36
36
|
# make a request to API using client_id and private_key
|
37
|
-
files_list = GroupDocs::Storage::Folder.list!('/', {}, {
|
37
|
+
files_list = GroupDocs::Storage::Folder.list!('/', {}, {:client_id => settings.client_id, :private_key => settings.private_key})
|
38
38
|
document = ''
|
39
39
|
|
40
40
|
# get document by file ID
|
@@ -52,28 +52,28 @@ post '/sample11' do
|
|
52
52
|
|
53
53
|
# construct requestBody depends on annotation type
|
54
54
|
# text annotation
|
55
|
-
if settings.annotation_type ==
|
55
|
+
if settings.annotation_type == 'text'
|
56
56
|
annotation.box = {x: params['box_x'], y: params['box_y'], width: params['box_width'], height: params['box_height']}
|
57
57
|
annotation.annotationPosition = {x: params['annotationPosition_x'], y: params['annotationPosition_y']}
|
58
58
|
|
59
|
-
|
60
|
-
elsif settings.annotation_type ==
|
59
|
+
# area annotation
|
60
|
+
elsif settings.annotation_type == 'area'
|
61
61
|
annotation.box = {x: params['box_x'], y: params['box_y'], width: params['box_width'], height: params['box_height']}
|
62
62
|
annotation.annotationPosition = {x: 0, y: 0}
|
63
63
|
|
64
|
-
|
65
|
-
elsif settings.annotation_type ==
|
64
|
+
# point annotation
|
65
|
+
elsif settings.annotation_type == 'point'
|
66
66
|
annotation.box = {x: params['box_x'], y: params['box_y'], width: 0, height: 0}
|
67
67
|
annotation.annotationPosition = {x: 0, y: 0}
|
68
68
|
end
|
69
69
|
|
70
70
|
# call create method
|
71
|
-
annotation.create!({
|
71
|
+
annotation.create!({:client_id => settings.client_id, :private_key => settings.private_key})
|
72
72
|
|
73
73
|
# add annotation reply
|
74
74
|
reply = GroupDocs::Document::Annotation::Reply.new(annotation: annotation)
|
75
75
|
reply.text = params['text']
|
76
|
-
reply.create!({
|
76
|
+
reply.create!({:client_id => settings.client_id, :private_key => settings.private_key})
|
77
77
|
|
78
78
|
end
|
79
79
|
|
@@ -82,5 +82,5 @@ post '/sample11' do
|
|
82
82
|
end
|
83
83
|
|
84
84
|
# set variables for template
|
85
|
-
haml :sample11, :locals => {
|
85
|
+
haml :sample11, :locals => {:userId => settings.client_id, :privateKey => settings.private_key, :fileId => settings.file_id, :annotationType => settings.annotation_type, :annotationId => (defined? annotation.id) ? annotation.id : nil, :annotationText => params['text'], :err => err}
|
86
86
|
end
|
@@ -12,10 +12,10 @@ post '/sample12' do
|
|
12
12
|
|
13
13
|
begin
|
14
14
|
# check required variables
|
15
|
-
raise
|
15
|
+
raise 'Please enter all required parameters' if settings.client_id.empty? or settings.private_key.empty? or settings.file_id.empty?
|
16
16
|
|
17
17
|
# make a request to API using client_id and private_key
|
18
|
-
files_list = GroupDocs::Storage::Folder.list!('/', {}, {
|
18
|
+
files_list = GroupDocs::Storage::Folder.list!('/', {}, {:client_id => settings.client_id, :private_key => settings.private_key})
|
19
19
|
document = ''
|
20
20
|
|
21
21
|
# get document by file ID
|
@@ -35,5 +35,5 @@ post '/sample12' do
|
|
35
35
|
end
|
36
36
|
|
37
37
|
# set variables for template
|
38
|
-
haml :sample12, :locals => {
|
38
|
+
haml :sample12, :locals => {:userId => settings.client_id, :privateKey => settings.private_key, :annotations => annotations, :fileId => settings.file_id, :err => err}
|
39
39
|
end
|
@@ -13,10 +13,10 @@ post '/sample13' do
|
|
13
13
|
|
14
14
|
begin
|
15
15
|
# check required variables
|
16
|
-
raise
|
16
|
+
raise 'Please enter all required parameters' if settings.client_id.empty? or settings.private_key.empty? or settings.file_id.empty? or settings.email.empty?
|
17
17
|
|
18
18
|
# make a request to API using client_id and private_key
|
19
|
-
files_list = GroupDocs::Storage::Folder.list!('/', {}, {
|
19
|
+
files_list = GroupDocs::Storage::Folder.list!('/', {}, {:client_id => settings.client_id, :private_key => settings.private_key})
|
20
20
|
document = ''
|
21
21
|
|
22
22
|
# get document by file ID
|
@@ -28,7 +28,7 @@ post '/sample13' do
|
|
28
28
|
|
29
29
|
unless document.instance_of? String
|
30
30
|
# add collaborator to doc with annotations
|
31
|
-
result = document.to_document.set_collaborators!(settings.email.split(
|
31
|
+
result = document.to_document.set_collaborators!(settings.email.split(' '), 1, {:client_id => settings.client_id, :private_key => settings.private_key})
|
32
32
|
end
|
33
33
|
|
34
34
|
rescue Exception => e
|
@@ -36,5 +36,5 @@ post '/sample13' do
|
|
36
36
|
end
|
37
37
|
|
38
38
|
# set variables for template
|
39
|
-
haml :sample13, :locals => {
|
39
|
+
haml :sample13, :locals => {:userId => settings.client_id, :privateKey => settings.private_key, :fileId => settings.file_id, :email => settings.email, :result => result, :err => err}
|
40
40
|
end
|