groupdocs 1.5.0 → 1.5.1
Sign up to get free protection for your applications and to get access to all the features.
- 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
|