groupdocs 1.5.7 → 1.5.8
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 +51 -0
- data/examples/api-samples/Gemfile +1 -1
- data/examples/api-samples/Gemfile.lock +43 -0
- data/examples/api-samples/public/docs/{sample2.html → sample01.html} +39 -19
- data/examples/api-samples/public/docs/{sample3.html → sample02.html} +28 -22
- data/examples/api-samples/public/docs/sample03.html +285 -0
- data/examples/api-samples/public/docs/{sample4.html → sample04.html} +30 -36
- data/examples/api-samples/public/docs/{sample5.html → sample05.html} +68 -31
- data/examples/api-samples/public/docs/sample06.html +299 -0
- data/examples/api-samples/public/docs/{sample7.html → sample07.html} +53 -18
- data/examples/api-samples/public/docs/{sample8.html → sample08.html} +64 -41
- data/examples/api-samples/public/docs/sample09.html +260 -0
- data/examples/api-samples/public/docs/sample10.html +67 -28
- data/examples/api-samples/public/docs/sample11.html +171 -55
- data/examples/api-samples/public/docs/sample12.html +53 -17
- data/examples/api-samples/public/docs/sample13.html +52 -16
- data/examples/api-samples/public/docs/sample14.html +51 -8
- data/examples/api-samples/public/docs/sample15.html +46 -10
- data/examples/api-samples/public/docs/sample16.html +81 -7
- data/examples/api-samples/public/docs/sample17.html +103 -15
- data/examples/api-samples/public/docs/sample18.html +117 -41
- data/examples/api-samples/public/docs/sample19.html +410 -36
- data/examples/api-samples/public/docs/sample20.html +46 -10
- data/examples/api-samples/public/docs/sample21.html +504 -45
- data/examples/api-samples/public/docs/sample22.html +166 -28
- data/examples/api-samples/public/docs/sample23.html +61 -25
- data/examples/api-samples/public/docs/sample24.html +100 -12
- data/examples/api-samples/public/docs/sample25.html +123 -49
- data/examples/api-samples/public/docs/sample26.html +41 -8
- data/examples/api-samples/public/docs/sample27.html +125 -50
- data/examples/api-samples/public/docs/sample28.html +27 -9
- data/examples/api-samples/public/docs/sample29.html +10 -10
- data/examples/api-samples/public/docs/sample30.html +70 -14
- data/examples/api-samples/public/docs/sample31.html +108 -67
- data/examples/api-samples/public/docs/sample32.html +71 -99
- data/examples/api-samples/public/docs/sample33.html +107 -32
- data/examples/api-samples/public/docs/{sample1.html → sample34.html} +58 -18
- data/examples/api-samples/public/docs/sample35.html +666 -0
- data/examples/api-samples/public/docs/{sample6.html → sample36.html} +56 -37
- data/examples/api-samples/public/docs/sample37.html +815 -0
- data/examples/api-samples/public/docs/sample38.html +508 -0
- data/examples/api-samples/public/docs/sample39.html +921 -0
- data/examples/api-samples/public/docs/sample40.html +510 -0
- data/examples/api-samples/public/docs/sample41.html +452 -0
- data/examples/api-samples/public/docs/sample42.html +311 -0
- data/examples/api-samples/public/templates/test_all_fields2.pdf +0 -0
- data/examples/api-samples/samples/sample01.rb +37 -0
- data/examples/api-samples/samples/sample02.rb +41 -0
- data/examples/api-samples/samples/sample03.rb +73 -0
- data/examples/api-samples/samples/sample04.rb +47 -0
- data/examples/api-samples/samples/{sample5.rb → sample05.rb} +26 -14
- data/examples/api-samples/samples/sample06.rb +80 -0
- data/examples/api-samples/samples/sample07.rb +52 -0
- data/examples/api-samples/samples/sample08.rb +69 -0
- data/examples/api-samples/samples/sample09.rb +83 -0
- data/examples/api-samples/samples/sample10.rb +29 -15
- data/examples/api-samples/samples/sample11.rb +89 -37
- data/examples/api-samples/samples/sample12.rb +22 -11
- data/examples/api-samples/samples/sample13.rb +22 -10
- data/examples/api-samples/samples/sample14.rb +23 -5
- data/examples/api-samples/samples/sample15.rb +18 -7
- data/examples/api-samples/samples/sample16.rb +28 -4
- data/examples/api-samples/samples/sample17.rb +31 -5
- data/examples/api-samples/samples/sample18.rb +36 -8
- data/examples/api-samples/samples/sample19.rb +138 -18
- data/examples/api-samples/samples/sample20.rb +14 -3
- data/examples/api-samples/samples/sample21.rb +162 -23
- data/examples/api-samples/samples/sample22.rb +73 -22
- data/examples/api-samples/samples/sample23.rb +17 -6
- data/examples/api-samples/samples/sample24.rb +34 -7
- data/examples/api-samples/samples/sample25.rb +37 -12
- data/examples/api-samples/samples/sample26.rb +12 -5
- data/examples/api-samples/samples/sample27.rb +38 -12
- data/examples/api-samples/samples/sample28.rb +25 -6
- data/examples/api-samples/samples/sample29.rb +12 -12
- data/examples/api-samples/samples/sample30.rb +27 -15
- data/examples/api-samples/samples/sample31.rb +44 -33
- data/examples/api-samples/samples/sample32.rb +43 -41
- data/examples/api-samples/samples/sample33.rb +42 -14
- data/examples/api-samples/samples/sample34.rb +40 -0
- data/examples/api-samples/samples/sample35.rb +224 -0
- data/examples/api-samples/samples/sample36.rb +58 -0
- data/examples/api-samples/samples/sample37.rb +229 -0
- data/examples/api-samples/samples/sample38.rb +128 -0
- data/examples/api-samples/samples/sample39.rb +252 -0
- data/examples/api-samples/samples/sample40.rb +164 -0
- data/examples/api-samples/samples/sample41.rb +118 -0
- data/examples/api-samples/samples/sample42.rb +97 -0
- data/examples/api-samples/views/_others_samples.haml +25 -11
- data/examples/api-samples/views/index.haml +23 -11
- data/examples/api-samples/views/popup.haml +32 -0
- data/examples/api-samples/views/{sample1.haml → sample01.haml} +12 -7
- data/examples/api-samples/views/{sample2.haml → sample02.haml} +20 -15
- data/examples/api-samples/views/sample03.haml +83 -0
- data/examples/api-samples/views/sample04.haml +49 -0
- data/examples/api-samples/views/{sample5.haml → sample05.haml} +19 -14
- data/examples/api-samples/views/sample06.haml +53 -0
- data/examples/api-samples/views/sample07.haml +47 -0
- data/examples/api-samples/views/{sample8.haml → sample08.haml} +17 -12
- data/examples/api-samples/views/{sample9.haml → sample09.haml} +19 -4
- data/examples/api-samples/views/sample10.haml +18 -13
- data/examples/api-samples/views/sample11.haml +48 -19
- data/examples/api-samples/views/sample12.haml +26 -21
- data/examples/api-samples/views/sample13.haml +18 -12
- data/examples/api-samples/views/sample14.haml +21 -15
- data/examples/api-samples/views/sample15.haml +16 -9
- data/examples/api-samples/views/sample16.haml +18 -5
- data/examples/api-samples/views/sample17.haml +14 -9
- data/examples/api-samples/views/sample18.haml +13 -7
- data/examples/api-samples/views/sample19.haml +37 -8
- data/examples/api-samples/views/sample20.haml +13 -8
- data/examples/api-samples/views/sample21.haml +71 -13
- data/examples/api-samples/views/sample22.haml +53 -16
- data/examples/api-samples/views/sample23.haml +9 -4
- data/examples/api-samples/views/sample24.haml +9 -4
- data/examples/api-samples/views/sample25.haml +18 -13
- data/examples/api-samples/views/sample26.haml +8 -3
- data/examples/api-samples/views/sample27.haml +20 -14
- data/examples/api-samples/views/sample28.haml +16 -10
- data/examples/api-samples/views/sample29.haml +4 -4
- data/examples/api-samples/views/sample30.haml +16 -10
- data/examples/api-samples/views/sample31.haml +39 -32
- data/examples/api-samples/views/sample32.haml +25 -36
- data/examples/api-samples/views/sample33.haml +14 -17
- data/examples/api-samples/views/sample34.haml +48 -0
- data/examples/api-samples/views/sample35.haml +95 -0
- data/examples/api-samples/views/sample36.haml +64 -0
- data/examples/api-samples/views/sample37.haml +124 -0
- data/examples/api-samples/views/sample38.haml +115 -0
- data/examples/api-samples/views/sample39.haml +236 -0
- data/examples/api-samples/views/sample40.haml +95 -0
- data/examples/api-samples/views/{sample4.haml → sample41.haml} +90 -72
- data/examples/api-samples/views/sample42.haml +59 -0
- data/lib/groupdocs/api/helpers/rest_helper.rb +13 -1
- data/lib/groupdocs/datasource.rb +2 -1
- data/lib/groupdocs/document.rb +101 -13
- data/lib/groupdocs/document/annotation.rb +28 -13
- data/lib/groupdocs/document/annotation/marker.rb +18 -0
- data/lib/groupdocs/document/annotation/reply.rb +9 -2
- data/lib/groupdocs/document/field.rb +5 -1
- data/lib/groupdocs/job.rb +12 -2
- data/lib/groupdocs/questionnaire.rb +174 -4
- data/lib/groupdocs/questionnaire/collector.rb +21 -0
- data/lib/groupdocs/questionnaire/question.rb +19 -0
- data/lib/groupdocs/questionnaire/question/answer.rb +5 -0
- data/lib/groupdocs/questionnaire/question/conditions.rb +20 -0
- data/lib/groupdocs/signature.rb +36 -308
- data/lib/groupdocs/signature/envelope.rb +146 -4
- data/lib/groupdocs/signature/field.rb +20 -1
- data/lib/groupdocs/signature/field/location.rb +18 -7
- data/lib/groupdocs/signature/form.rb +199 -10
- data/lib/groupdocs/signature/shared/document_methods.rb +38 -0
- data/lib/groupdocs/signature/shared/entity_methods.rb +0 -1
- data/lib/groupdocs/signature/shared/field_methods.rb +13 -38
- data/lib/groupdocs/signature/shared/recipient_methods.rb +8 -0
- data/lib/groupdocs/signature/template.rb +3 -1
- data/lib/groupdocs/storage.rb +4 -1
- data/lib/groupdocs/storage/file.rb +18 -1
- data/lib/groupdocs/subscription.rb +8 -3
- data/lib/groupdocs/user.rb +8 -0
- data/lib/groupdocs/version.rb +1 -1
- data/spec/groupdocs/document/annotation_spec.rb +1 -14
- data/spec/groupdocs/subscription_spec.rb +2 -2
- metadata +86 -32
- checksums.yaml +0 -15
- data/examples/api-samples/public/docs/sample9.html +0 -200
- data/examples/api-samples/samples/sample1.rb +0 -25
- data/examples/api-samples/samples/sample2.rb +0 -29
- data/examples/api-samples/samples/sample3.rb +0 -33
- data/examples/api-samples/samples/sample4.rb +0 -51
- data/examples/api-samples/samples/sample6.rb +0 -49
- data/examples/api-samples/samples/sample7.rb +0 -42
- data/examples/api-samples/samples/sample8.rb +0 -61
- data/examples/api-samples/samples/sample9.rb +0 -48
- data/examples/api-samples/views/sample3.haml +0 -44
- data/examples/api-samples/views/sample6.haml +0 -49
- data/examples/api-samples/views/sample7.haml +0 -42
|
@@ -63,9 +63,10 @@
|
|
|
63
63
|
|
|
64
64
|
</div>
|
|
65
65
|
|
|
66
|
-
<div class="content"><div class='highlight'><pre> set <span class="symbol">:client_id</span>, params[<span class="symbol">:
|
|
67
|
-
set <span class="symbol">:private_key</span>, params[<span class="symbol">:
|
|
66
|
+
<div class="content"><div class='highlight'><pre> set <span class="symbol">:client_id</span>, params[<span class="symbol">:clientId</span>]
|
|
67
|
+
set <span class="symbol">:private_key</span>, params[<span class="symbol">:privateKey</span>]
|
|
68
68
|
set <span class="symbol">:resultFileId</span>, params[<span class="symbol">:resultFileId</span>]
|
|
69
|
+
set <span class="symbol">:base_path</span>, params[<span class="symbol">:basePath</span>]
|
|
69
70
|
|
|
70
71
|
<span class="keyword">begin</span></pre></div></div>
|
|
71
72
|
|
|
@@ -82,7 +83,9 @@
|
|
|
82
83
|
|
|
83
84
|
</div>
|
|
84
85
|
|
|
85
|
-
<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.resultFileId.empty
|
|
86
|
+
<div class="content"><div class='highlight'><pre> raise <span class="string">'Please enter all required parameters'</span> <span class="keyword">if</span> settings.client_id.empty? <span class="keyword">or</span> settings.private_key.empty? <span class="keyword">or</span> settings.resultFileId.empty?
|
|
87
|
+
|
|
88
|
+
<span class="keyword">if</span> settings.base_path.empty? <span class="keyword">then</span> settings.base_path = <span class="string">'https://api.groupdocs.com'</span> <span class="keyword">end</span></pre></div></div>
|
|
86
89
|
|
|
87
90
|
</li>
|
|
88
91
|
|
|
@@ -93,11 +96,13 @@
|
|
|
93
96
|
<div class="pilwrap ">
|
|
94
97
|
<a class="pilcrow" href="#section-5">¶</a>
|
|
95
98
|
</div>
|
|
96
|
-
<p>
|
|
99
|
+
<p>Configure your access to API server</p>
|
|
97
100
|
|
|
98
101
|
</div>
|
|
99
102
|
|
|
100
|
-
<div class="content"><div class='highlight'><pre>
|
|
103
|
+
<div class="content"><div class='highlight'><pre> <span class="constant">GroupDocs</span>.configure <span class="keyword">do</span> |groupdocs|
|
|
104
|
+
groupdocs.client_id = settings.client_id
|
|
105
|
+
groupdocs.private_key = settings.private_key</pre></div></div>
|
|
101
106
|
|
|
102
107
|
</li>
|
|
103
108
|
|
|
@@ -108,11 +113,12 @@
|
|
|
108
113
|
<div class="pilwrap ">
|
|
109
114
|
<a class="pilcrow" href="#section-6">¶</a>
|
|
110
115
|
</div>
|
|
111
|
-
<p>
|
|
116
|
+
<p>Optionally specify API server and version</p>
|
|
112
117
|
|
|
113
118
|
</div>
|
|
114
119
|
|
|
115
|
-
<div class="content"><div class='highlight'><pre>
|
|
120
|
+
<div class="content"><div class='highlight'><pre> groupdocs.api_server = settings.base_path <span class="comment"># default is 'https://api.groupdocs.com'</span>
|
|
121
|
+
<span class="keyword">end</span></pre></div></div>
|
|
116
122
|
|
|
117
123
|
</li>
|
|
118
124
|
|
|
@@ -123,11 +129,41 @@
|
|
|
123
129
|
<div class="pilwrap ">
|
|
124
130
|
<a class="pilcrow" href="#section-7">¶</a>
|
|
125
131
|
</div>
|
|
132
|
+
<p>construct new storage file</p>
|
|
133
|
+
|
|
134
|
+
</div>
|
|
135
|
+
|
|
136
|
+
<div class="content"><div class='highlight'><pre> file = <span class="constant">GroupDocs::Storage::File</span>.new(<span class="symbol">guid:</span> settings.resultFileId)</pre></div></div>
|
|
137
|
+
|
|
138
|
+
</li>
|
|
139
|
+
|
|
140
|
+
|
|
141
|
+
<li id="section-8">
|
|
142
|
+
<div class="annotation">
|
|
143
|
+
|
|
144
|
+
<div class="pilwrap ">
|
|
145
|
+
<a class="pilcrow" href="#section-8">¶</a>
|
|
146
|
+
</div>
|
|
147
|
+
<p>construct new document</p>
|
|
148
|
+
|
|
149
|
+
</div>
|
|
150
|
+
|
|
151
|
+
<div class="content"><div class='highlight'><pre> document = <span class="constant">GroupDocs::Document</span>.new(<span class="symbol">file:</span> file)</pre></div></div>
|
|
152
|
+
|
|
153
|
+
</li>
|
|
154
|
+
|
|
155
|
+
|
|
156
|
+
<li id="section-9">
|
|
157
|
+
<div class="annotation">
|
|
158
|
+
|
|
159
|
+
<div class="pilwrap ">
|
|
160
|
+
<a class="pilcrow" href="#section-9">¶</a>
|
|
161
|
+
</div>
|
|
126
162
|
<p>get compare changes</p>
|
|
127
163
|
|
|
128
164
|
</div>
|
|
129
165
|
|
|
130
|
-
<div class="content"><div class='highlight'><pre> changes = document.changes!(
|
|
166
|
+
<div class="content"><div class='highlight'><pre> changes = document.changes!()
|
|
131
167
|
|
|
132
168
|
result = <span class="string">''</span>
|
|
133
169
|
result += <span class="string">"<table class='border'>"</span>
|
|
@@ -155,11 +191,11 @@
|
|
|
155
191
|
</li>
|
|
156
192
|
|
|
157
193
|
|
|
158
|
-
<li id="section-
|
|
194
|
+
<li id="section-10">
|
|
159
195
|
<div class="annotation">
|
|
160
196
|
|
|
161
197
|
<div class="pilwrap ">
|
|
162
|
-
<a class="pilcrow" href="#section-
|
|
198
|
+
<a class="pilcrow" href="#section-10">¶</a>
|
|
163
199
|
</div>
|
|
164
200
|
<p>set variables for template</p>
|
|
165
201
|
|
|
@@ -48,7 +48,7 @@
|
|
|
48
48
|
|
|
49
49
|
</div>
|
|
50
50
|
|
|
51
|
-
<div class="content"><div class='highlight'><pre>post <span class="string">'/sample21'</span> <span class="keyword">do</span></pre></div></div>
|
|
51
|
+
<div class="content"><div class='highlight'><pre>post <span class="string">'/sample21/signature_callback'</span> <span class="keyword">do</span></pre></div></div>
|
|
52
52
|
|
|
53
53
|
</li>
|
|
54
54
|
|
|
@@ -59,18 +59,11 @@
|
|
|
59
59
|
<div class="pilwrap ">
|
|
60
60
|
<a class="pilcrow" href="#section-3">¶</a>
|
|
61
61
|
</div>
|
|
62
|
-
<p>
|
|
62
|
+
<p>Set download path</p>
|
|
63
63
|
|
|
64
64
|
</div>
|
|
65
65
|
|
|
66
|
-
<div class="content"><div class='highlight'><pre>
|
|
67
|
-
set <span class="symbol">:private_key</span>, params[<span class="symbol">:private_key</span>]
|
|
68
|
-
set <span class="symbol">:email</span>, params[<span class="symbol">:email</span>]
|
|
69
|
-
set <span class="symbol">:name</span>, params[<span class="symbol">:name</span>]
|
|
70
|
-
set <span class="symbol">:lastName</span>, params[<span class="symbol">:lastName</span>]
|
|
71
|
-
set <span class="symbol">:file</span>, params[<span class="symbol">:file</span>]
|
|
72
|
-
|
|
73
|
-
<span class="keyword">begin</span></pre></div></div>
|
|
66
|
+
<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>
|
|
74
67
|
|
|
75
68
|
</li>
|
|
76
69
|
|
|
@@ -81,11 +74,16 @@
|
|
|
81
74
|
<div class="pilwrap ">
|
|
82
75
|
<a class="pilcrow" href="#section-4">¶</a>
|
|
83
76
|
</div>
|
|
84
|
-
<p>
|
|
77
|
+
<p>Get callback request</p>
|
|
85
78
|
|
|
86
79
|
</div>
|
|
87
80
|
|
|
88
|
-
<div class="content"><div class='highlight'><pre>
|
|
81
|
+
<div class="content"><div class='highlight'><pre> data = <span class="constant">JSON</span>.parse(request.body.read)
|
|
82
|
+
<span class="keyword">begin</span>
|
|
83
|
+
raise <span class="string">'Empty params!'</span> <span class="keyword">if</span> data.empty?
|
|
84
|
+
source_id = <span class="keyword">nil</span>
|
|
85
|
+
client_id = <span class="keyword">nil</span>
|
|
86
|
+
private_key = <span class="keyword">nil</span></pre></div></div>
|
|
89
87
|
|
|
90
88
|
</li>
|
|
91
89
|
|
|
@@ -96,11 +94,15 @@
|
|
|
96
94
|
<div class="pilwrap ">
|
|
97
95
|
<a class="pilcrow" href="#section-5">¶</a>
|
|
98
96
|
</div>
|
|
99
|
-
<p>
|
|
97
|
+
<p>Get value of SourceId</p>
|
|
100
98
|
|
|
101
99
|
</div>
|
|
102
100
|
|
|
103
|
-
<div class="content"><div class='highlight'><pre>
|
|
101
|
+
<div class="content"><div class='highlight'><pre> data.each <span class="keyword">do</span> |key, value|
|
|
102
|
+
<span class="keyword">if</span> key == <span class="string">'SourceId'</span>
|
|
103
|
+
source_id = value
|
|
104
|
+
<span class="keyword">end</span>
|
|
105
|
+
<span class="keyword">end</span></pre></div></div>
|
|
104
106
|
|
|
105
107
|
</li>
|
|
106
108
|
|
|
@@ -111,11 +113,16 @@
|
|
|
111
113
|
<div class="pilwrap ">
|
|
112
114
|
<a class="pilcrow" href="#section-6">¶</a>
|
|
113
115
|
</div>
|
|
114
|
-
<p>
|
|
116
|
+
<p>Get private key and client_id from file user_info.txt</p>
|
|
115
117
|
|
|
116
118
|
</div>
|
|
117
119
|
|
|
118
|
-
<div class="content"><div class='highlight'><pre> <span class="constant">File</span>.
|
|
120
|
+
<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>)
|
|
121
|
+
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>)
|
|
122
|
+
contents = contents.split(<span class="string">' '</span>)
|
|
123
|
+
client_id = contents.first
|
|
124
|
+
private_key = contents.last
|
|
125
|
+
<span class="keyword">end</span></pre></div></div>
|
|
119
126
|
|
|
120
127
|
</li>
|
|
121
128
|
|
|
@@ -126,11 +133,11 @@
|
|
|
126
133
|
<div class="pilwrap ">
|
|
127
134
|
<a class="pilcrow" href="#section-7">¶</a>
|
|
128
135
|
</div>
|
|
129
|
-
<p>
|
|
136
|
+
<p>Create Job instance</p>
|
|
130
137
|
|
|
131
138
|
</div>
|
|
132
139
|
|
|
133
|
-
<div class="content"><div class='highlight'><pre>
|
|
140
|
+
<div class="content"><div class='highlight'><pre> job = <span class="constant">GroupDocs::Signature::Envelope</span>.new({<span class="symbol">:id</span> => source_id})</pre></div></div>
|
|
134
141
|
|
|
135
142
|
</li>
|
|
136
143
|
|
|
@@ -141,14 +148,11 @@
|
|
|
141
148
|
<div class="pilwrap ">
|
|
142
149
|
<a class="pilcrow" href="#section-8">¶</a>
|
|
143
150
|
</div>
|
|
144
|
-
<p>
|
|
151
|
+
<p>Get document by job id</p>
|
|
145
152
|
|
|
146
153
|
</div>
|
|
147
154
|
|
|
148
|
-
<div class="content"><div class='highlight'><pre>
|
|
149
|
-
envelope.name = params[<span class="symbol">:file</span>][<span class="symbol">:filename</span>]
|
|
150
|
-
envelope.email_subject = <span class="string">'Sing this!'</span>
|
|
151
|
-
envelope.create!({}, <span class="symbol">client_id:</span> settings.client_id, <span class="symbol">private_key:</span> settings.private_key)</pre></div></div>
|
|
155
|
+
<div class="content"><div class='highlight'><pre> documents = job.documents!({}, {<span class="symbol">:client_id</span> => client_id, <span class="symbol">:private_key</span> => private_key})</pre></div></div>
|
|
152
156
|
|
|
153
157
|
</li>
|
|
154
158
|
|
|
@@ -159,11 +163,16 @@
|
|
|
159
163
|
<div class="pilwrap ">
|
|
160
164
|
<a class="pilcrow" href="#section-9">¶</a>
|
|
161
165
|
</div>
|
|
162
|
-
<p>
|
|
166
|
+
<p>Download converted file</p>
|
|
163
167
|
|
|
164
168
|
</div>
|
|
165
169
|
|
|
166
|
-
<div class="content"><div class='highlight'><pre>
|
|
170
|
+
<div class="content"><div class='highlight'><pre> documents[<span class="number">0</span>].file.download!(downloads_path, {<span class="symbol">:client_id</span> => client_id, <span class="symbol">:private_key</span> => private_key})
|
|
171
|
+
|
|
172
|
+
<span class="keyword">rescue</span> <span class="constant">Exception</span> => e
|
|
173
|
+
err = e.message
|
|
174
|
+
<span class="keyword">end</span>
|
|
175
|
+
<span class="keyword">end</span></pre></div></div>
|
|
167
176
|
|
|
168
177
|
</li>
|
|
169
178
|
|
|
@@ -174,11 +183,11 @@
|
|
|
174
183
|
<div class="pilwrap ">
|
|
175
184
|
<a class="pilcrow" href="#section-10">¶</a>
|
|
176
185
|
</div>
|
|
177
|
-
<p>
|
|
186
|
+
<p>GET request</p>
|
|
178
187
|
|
|
179
188
|
</div>
|
|
180
189
|
|
|
181
|
-
<div class="content"><div class='highlight'><pre>
|
|
190
|
+
<div class="content"><div class='highlight'><pre>get <span class="string">'/sample21/check'</span> <span class="keyword">do</span></pre></div></div>
|
|
182
191
|
|
|
183
192
|
</li>
|
|
184
193
|
|
|
@@ -189,15 +198,13 @@
|
|
|
189
198
|
<div class="pilwrap ">
|
|
190
199
|
<a class="pilcrow" href="#section-11">¶</a>
|
|
191
200
|
</div>
|
|
192
|
-
<p>
|
|
201
|
+
<p>Check is there download directory</p>
|
|
193
202
|
|
|
194
203
|
</div>
|
|
195
204
|
|
|
196
|
-
<div class="content"><div class='highlight'><pre>
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
recipient.last_name = settings.lastName
|
|
200
|
-
recipient.role_id = roles.detect { |role| role.name == <span class="string">'Signer'</span> }.id</pre></div></div>
|
|
205
|
+
<div class="content"><div class='highlight'><pre> <span class="keyword">unless</span> <span class="constant">File</span>.directory?(<span class="string">"<span class="subst">#{<span class="constant">File</span>.dirname(__FILE_<span class="number">_</span>)}</span>/../public/downloads"</span>)
|
|
206
|
+
<span class="keyword">return</span> <span class="string">'Directory was not found.'</span>
|
|
207
|
+
<span class="keyword">end</span></pre></div></div>
|
|
201
208
|
|
|
202
209
|
</li>
|
|
203
210
|
|
|
@@ -208,11 +215,17 @@
|
|
|
208
215
|
<div class="pilwrap ">
|
|
209
216
|
<a class="pilcrow" href="#section-12">¶</a>
|
|
210
217
|
</div>
|
|
211
|
-
<p>
|
|
218
|
+
<p>Get file name from download directory</p>
|
|
212
219
|
|
|
213
220
|
</div>
|
|
214
221
|
|
|
215
|
-
<div class="content"><div class='highlight'><pre>
|
|
222
|
+
<div class="content"><div class='highlight'><pre> name = <span class="keyword">nil</span>
|
|
223
|
+
<span class="constant">Dir</span>.entries(<span class="string">"<span class="subst">#{<span class="constant">File</span>.dirname(__FILE_<span class="number">_</span>)}</span>/../public/downloads"</span>).each <span class="keyword">do</span> |file|
|
|
224
|
+
name = file <span class="keyword">if</span> file != <span class="string">'.'</span> && file != <span class="string">'..'</span>
|
|
225
|
+
<span class="keyword">end</span>
|
|
226
|
+
|
|
227
|
+
name
|
|
228
|
+
<span class="keyword">end</span></pre></div></div>
|
|
216
229
|
|
|
217
230
|
</li>
|
|
218
231
|
|
|
@@ -223,11 +236,11 @@
|
|
|
223
236
|
<div class="pilwrap ">
|
|
224
237
|
<a class="pilcrow" href="#section-13">¶</a>
|
|
225
238
|
</div>
|
|
226
|
-
<p>
|
|
239
|
+
<p>GET request</p>
|
|
227
240
|
|
|
228
241
|
</div>
|
|
229
242
|
|
|
230
|
-
<div class="content"><div class='highlight'><pre>
|
|
243
|
+
<div class="content"><div class='highlight'><pre>get <span class="string">'/sample21/downloads/:filename'</span> <span class="keyword">do</span> |filename|</pre></div></div>
|
|
231
244
|
|
|
232
245
|
</li>
|
|
233
246
|
|
|
@@ -238,11 +251,12 @@
|
|
|
238
251
|
<div class="pilwrap ">
|
|
239
252
|
<a class="pilcrow" href="#section-14">¶</a>
|
|
240
253
|
</div>
|
|
241
|
-
<p>Send
|
|
254
|
+
<p>Send file with header to download it</p>
|
|
242
255
|
|
|
243
256
|
</div>
|
|
244
257
|
|
|
245
|
-
<div class="content"><div class='highlight'><pre>
|
|
258
|
+
<div class="content"><div class='highlight'><pre> send_file <span class="string">"<span class="subst">#{<span class="constant">File</span>.dirname(__FILE_<span class="number">_</span>)}</span>/../public/downloads/<span class="subst">#{filename}</span>"</span>, <span class="symbol">:filename</span> => filename, <span class="symbol">:type</span> => <span class="string">'Application/octet-stream'</span>
|
|
259
|
+
<span class="keyword">end</span></pre></div></div>
|
|
246
260
|
|
|
247
261
|
</li>
|
|
248
262
|
|
|
@@ -253,12 +267,457 @@
|
|
|
253
267
|
<div class="pilwrap ">
|
|
254
268
|
<a class="pilcrow" href="#section-15">¶</a>
|
|
255
269
|
</div>
|
|
256
|
-
<p>
|
|
270
|
+
<p>POST request</p>
|
|
271
|
+
|
|
272
|
+
</div>
|
|
273
|
+
|
|
274
|
+
<div class="content"><div class='highlight'><pre>post <span class="string">'/sample21'</span> <span class="keyword">do</span></pre></div></div>
|
|
275
|
+
|
|
276
|
+
</li>
|
|
277
|
+
|
|
278
|
+
|
|
279
|
+
<li id="section-16">
|
|
280
|
+
<div class="annotation">
|
|
281
|
+
|
|
282
|
+
<div class="pilwrap ">
|
|
283
|
+
<a class="pilcrow" href="#section-16">¶</a>
|
|
284
|
+
</div>
|
|
285
|
+
<p>set variables</p>
|
|
286
|
+
|
|
287
|
+
</div>
|
|
288
|
+
|
|
289
|
+
<div class="content"><div class='highlight'><pre> set <span class="symbol">:client_id</span>, params[<span class="symbol">:clientId</span>]
|
|
290
|
+
set <span class="symbol">:private_key</span>, params[<span class="symbol">:privateKey</span>]
|
|
291
|
+
set <span class="symbol">:email</span>, params[<span class="symbol">:email</span>]
|
|
292
|
+
set <span class="symbol">:name</span>, params[<span class="symbol">:name</span>]
|
|
293
|
+
set <span class="symbol">:lastName</span>, params[<span class="symbol">:lastName</span>]
|
|
294
|
+
set <span class="symbol">:fileId</span>, params[<span class="symbol">:fileId</span>]
|
|
295
|
+
set <span class="symbol">:callback</span>, params[<span class="symbol">:callback</span>]
|
|
296
|
+
set <span class="symbol">:base_path</span>, params[<span class="symbol">:basePath</span>]
|
|
297
|
+
set <span class="symbol">:url</span>, params[<span class="symbol">:url</span>]
|
|
298
|
+
set <span class="symbol">:source</span>, params[<span class="symbol">:source</span>]</pre></div></div>
|
|
299
|
+
|
|
300
|
+
</li>
|
|
301
|
+
|
|
302
|
+
|
|
303
|
+
<li id="section-17">
|
|
304
|
+
<div class="annotation">
|
|
305
|
+
|
|
306
|
+
<div class="pilwrap ">
|
|
307
|
+
<a class="pilcrow" href="#section-17">¶</a>
|
|
308
|
+
</div>
|
|
309
|
+
<p>Set download path</p>
|
|
310
|
+
|
|
311
|
+
</div>
|
|
312
|
+
|
|
313
|
+
<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>
|
|
314
|
+
|
|
315
|
+
</li>
|
|
316
|
+
|
|
317
|
+
|
|
318
|
+
<li id="section-18">
|
|
319
|
+
<div class="annotation">
|
|
320
|
+
|
|
321
|
+
<div class="pilwrap ">
|
|
322
|
+
<a class="pilcrow" href="#section-18">¶</a>
|
|
323
|
+
</div>
|
|
324
|
+
<p>Remove all files from download directory or create folder if it not there</p>
|
|
325
|
+
|
|
326
|
+
</div>
|
|
327
|
+
|
|
328
|
+
<div class="content"><div class='highlight'><pre> <span class="keyword">if</span> <span class="constant">File</span>.directory?(downloads_path)
|
|
329
|
+
<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> }
|
|
330
|
+
<span class="keyword">else</span>
|
|
331
|
+
<span class="constant">Dir::</span>mkdir(downloads_path)
|
|
332
|
+
<span class="keyword">end</span>
|
|
333
|
+
|
|
334
|
+
<span class="keyword">begin</span></pre></div></div>
|
|
335
|
+
|
|
336
|
+
</li>
|
|
337
|
+
|
|
338
|
+
|
|
339
|
+
<li id="section-19">
|
|
340
|
+
<div class="annotation">
|
|
341
|
+
|
|
342
|
+
<div class="pilwrap ">
|
|
343
|
+
<a class="pilcrow" href="#section-19">¶</a>
|
|
344
|
+
</div>
|
|
345
|
+
<p>Check required variables</p>
|
|
346
|
+
|
|
347
|
+
</div>
|
|
348
|
+
|
|
349
|
+
<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? <span class="keyword">or</span> settings.name.empty? <span class="keyword">or</span> settings.lastName.empty?
|
|
350
|
+
|
|
351
|
+
<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>
|
|
352
|
+
|
|
353
|
+
</li>
|
|
354
|
+
|
|
355
|
+
|
|
356
|
+
<li id="section-20">
|
|
357
|
+
<div class="annotation">
|
|
358
|
+
|
|
359
|
+
<div class="pilwrap ">
|
|
360
|
+
<a class="pilcrow" href="#section-20">¶</a>
|
|
361
|
+
</div>
|
|
362
|
+
<p>Configure your access to API server</p>
|
|
363
|
+
|
|
364
|
+
</div>
|
|
365
|
+
|
|
366
|
+
<div class="content"><div class='highlight'><pre> <span class="constant">GroupDocs</span>.configure <span class="keyword">do</span> |groupdocs|
|
|
367
|
+
groupdocs.client_id = settings.client_id
|
|
368
|
+
groupdocs.private_key = settings.private_key</pre></div></div>
|
|
369
|
+
|
|
370
|
+
</li>
|
|
371
|
+
|
|
372
|
+
|
|
373
|
+
<li id="section-21">
|
|
374
|
+
<div class="annotation">
|
|
375
|
+
|
|
376
|
+
<div class="pilwrap ">
|
|
377
|
+
<a class="pilcrow" href="#section-21">¶</a>
|
|
378
|
+
</div>
|
|
379
|
+
<p>Optionally specify API server and version</p>
|
|
380
|
+
|
|
381
|
+
</div>
|
|
382
|
+
|
|
383
|
+
<div class="content"><div class='highlight'><pre> groupdocs.api_server = settings.base_path <span class="comment"># default is 'https://api.groupdocs.com'</span>
|
|
384
|
+
<span class="keyword">end</span></pre></div></div>
|
|
385
|
+
|
|
386
|
+
</li>
|
|
387
|
+
|
|
388
|
+
|
|
389
|
+
<li id="section-22">
|
|
390
|
+
<div class="annotation">
|
|
391
|
+
|
|
392
|
+
<div class="pilwrap ">
|
|
393
|
+
<a class="pilcrow" href="#section-22">¶</a>
|
|
394
|
+
</div>
|
|
395
|
+
<p>Write client and private key to the file for callback job</p>
|
|
396
|
+
|
|
397
|
+
</div>
|
|
398
|
+
|
|
399
|
+
<div class="content"><div class='highlight'><pre> <span class="keyword">if</span> settings.callback
|
|
400
|
+
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>
|
|
401
|
+
|
|
402
|
+
</li>
|
|
403
|
+
|
|
404
|
+
|
|
405
|
+
<li id="section-23">
|
|
406
|
+
<div class="annotation">
|
|
407
|
+
|
|
408
|
+
<div class="pilwrap ">
|
|
409
|
+
<a class="pilcrow" href="#section-23">¶</a>
|
|
410
|
+
</div>
|
|
411
|
+
<p>white space is required</p>
|
|
412
|
+
|
|
413
|
+
</div>
|
|
414
|
+
|
|
415
|
+
<div class="content"><div class='highlight'><pre> out_file.write(<span class="string">"<span class="subst">#{settings.client_id}</span> "</span>)
|
|
416
|
+
out_file.write(<span class="string">"<span class="subst">#{settings.private_key}</span>"</span>)
|
|
417
|
+
out_file.close
|
|
418
|
+
<span class="keyword">end</span>
|
|
419
|
+
|
|
420
|
+
file = <span class="keyword">nil</span></pre></div></div>
|
|
421
|
+
|
|
422
|
+
</li>
|
|
423
|
+
|
|
424
|
+
|
|
425
|
+
<li id="section-24">
|
|
426
|
+
<div class="annotation">
|
|
427
|
+
|
|
428
|
+
<div class="pilwrap ">
|
|
429
|
+
<a class="pilcrow" href="#section-24">¶</a>
|
|
430
|
+
</div>
|
|
431
|
+
<p>get document by file GUID</p>
|
|
432
|
+
|
|
433
|
+
</div>
|
|
434
|
+
|
|
435
|
+
<div class="content"><div class='highlight'><pre> <span class="keyword">case</span> settings.source
|
|
436
|
+
<span class="keyword">when</span> <span class="string">'guid'</span></pre></div></div>
|
|
437
|
+
|
|
438
|
+
</li>
|
|
439
|
+
|
|
440
|
+
|
|
441
|
+
<li id="section-25">
|
|
442
|
+
<div class="annotation">
|
|
443
|
+
|
|
444
|
+
<div class="pilwrap ">
|
|
445
|
+
<a class="pilcrow" href="#section-25">¶</a>
|
|
446
|
+
</div>
|
|
447
|
+
<p>Create instance of File</p>
|
|
448
|
+
|
|
449
|
+
</div>
|
|
450
|
+
|
|
451
|
+
<div class="content"><div class='highlight'><pre> file = <span class="constant">GroupDocs::Storage::File</span>.new({<span class="symbol">:guid</span> => settings.fileId}).to_document.metadata!()
|
|
452
|
+
file = file.last_view.document.file.to_document
|
|
453
|
+
<span class="keyword">when</span> <span class="string">'local'</span></pre></div></div>
|
|
454
|
+
|
|
455
|
+
</li>
|
|
456
|
+
|
|
457
|
+
|
|
458
|
+
<li id="section-26">
|
|
459
|
+
<div class="annotation">
|
|
460
|
+
|
|
461
|
+
<div class="pilwrap ">
|
|
462
|
+
<a class="pilcrow" href="#section-26">¶</a>
|
|
463
|
+
</div>
|
|
464
|
+
<p>construct path</p>
|
|
465
|
+
|
|
466
|
+
</div>
|
|
467
|
+
|
|
468
|
+
<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>
|
|
469
|
+
|
|
470
|
+
</li>
|
|
471
|
+
|
|
472
|
+
|
|
473
|
+
<li id="section-27">
|
|
474
|
+
<div class="annotation">
|
|
475
|
+
|
|
476
|
+
<div class="pilwrap ">
|
|
477
|
+
<a class="pilcrow" href="#section-27">¶</a>
|
|
478
|
+
</div>
|
|
479
|
+
<p>open file</p>
|
|
480
|
+
|
|
481
|
+
</div>
|
|
482
|
+
|
|
483
|
+
<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>
|
|
484
|
+
|
|
485
|
+
</li>
|
|
486
|
+
|
|
487
|
+
|
|
488
|
+
<li id="section-28">
|
|
489
|
+
<div class="annotation">
|
|
490
|
+
|
|
491
|
+
<div class="pilwrap ">
|
|
492
|
+
<a class="pilcrow" href="#section-28">¶</a>
|
|
493
|
+
</div>
|
|
494
|
+
<p>make a request to API using client_id and private_key</p>
|
|
495
|
+
|
|
496
|
+
</div>
|
|
497
|
+
|
|
498
|
+
<div class="content"><div class='highlight'><pre> file = <span class="constant">GroupDocs::Storage::File</span>.upload!(file_path, {}).to_document
|
|
499
|
+
<span class="keyword">when</span> <span class="string">'url'</span></pre></div></div>
|
|
500
|
+
|
|
501
|
+
</li>
|
|
502
|
+
|
|
503
|
+
|
|
504
|
+
<li id="section-29">
|
|
505
|
+
<div class="annotation">
|
|
506
|
+
|
|
507
|
+
<div class="pilwrap ">
|
|
508
|
+
<a class="pilcrow" href="#section-29">¶</a>
|
|
509
|
+
</div>
|
|
510
|
+
<p>Upload file from defined url</p>
|
|
511
|
+
|
|
512
|
+
</div>
|
|
513
|
+
|
|
514
|
+
<div class="content"><div class='highlight'><pre> file = <span class="constant">GroupDocs::Storage::File</span>.upload_web!(settings.url).to_document
|
|
515
|
+
<span class="keyword">else</span>
|
|
516
|
+
raise <span class="string">'Wrong GUID source.'</span>
|
|
517
|
+
<span class="keyword">end</span>
|
|
518
|
+
|
|
519
|
+
name = file.name</pre></div></div>
|
|
520
|
+
|
|
521
|
+
</li>
|
|
522
|
+
|
|
523
|
+
|
|
524
|
+
<li id="section-30">
|
|
525
|
+
<div class="annotation">
|
|
526
|
+
|
|
527
|
+
<div class="pilwrap ">
|
|
528
|
+
<a class="pilcrow" href="#section-30">¶</a>
|
|
529
|
+
</div>
|
|
530
|
+
<p>create envelope using user id and entered by user name</p>
|
|
531
|
+
|
|
532
|
+
</div>
|
|
533
|
+
|
|
534
|
+
<div class="content"><div class='highlight'><pre> envelope = <span class="constant">GroupDocs::Signature::Envelope</span>.new
|
|
535
|
+
envelope.name = file.name
|
|
536
|
+
envelope.email_subject = <span class="string">'Sing this!'</span>
|
|
537
|
+
envelope.create!({})</pre></div></div>
|
|
538
|
+
|
|
539
|
+
</li>
|
|
540
|
+
|
|
541
|
+
|
|
542
|
+
<li id="section-31">
|
|
543
|
+
<div class="annotation">
|
|
544
|
+
|
|
545
|
+
<div class="pilwrap ">
|
|
546
|
+
<a class="pilcrow" href="#section-31">¶</a>
|
|
547
|
+
</div>
|
|
548
|
+
<p>Add uploaded document to envelope</p>
|
|
549
|
+
|
|
550
|
+
</div>
|
|
551
|
+
|
|
552
|
+
<div class="content"><div class='highlight'><pre> envelope.add_document!(file, {})</pre></div></div>
|
|
553
|
+
|
|
554
|
+
</li>
|
|
555
|
+
|
|
556
|
+
|
|
557
|
+
<li id="section-32">
|
|
558
|
+
<div class="annotation">
|
|
559
|
+
|
|
560
|
+
<div class="pilwrap ">
|
|
561
|
+
<a class="pilcrow" href="#section-32">¶</a>
|
|
562
|
+
</div>
|
|
563
|
+
<p>Get role list for current user</p>
|
|
564
|
+
|
|
565
|
+
</div>
|
|
566
|
+
|
|
567
|
+
<div class="content"><div class='highlight'><pre> roles = <span class="constant">GroupDocs::Signature::Role</span>.get!({})</pre></div></div>
|
|
568
|
+
|
|
569
|
+
</li>
|
|
570
|
+
|
|
571
|
+
|
|
572
|
+
<li id="section-33">
|
|
573
|
+
<div class="annotation">
|
|
574
|
+
|
|
575
|
+
<div class="pilwrap ">
|
|
576
|
+
<a class="pilcrow" href="#section-33">¶</a>
|
|
577
|
+
</div>
|
|
578
|
+
<p>Create new recipient</p>
|
|
579
|
+
|
|
580
|
+
</div>
|
|
581
|
+
|
|
582
|
+
<div class="content"><div class='highlight'><pre> recipient = <span class="constant">GroupDocs::Signature::Recipient</span>.new
|
|
583
|
+
recipient.email = settings.email
|
|
584
|
+
recipient.first_name = settings.name
|
|
585
|
+
recipient.last_name = settings.lastName
|
|
586
|
+
recipient.role_id = roles.detect { |role| role.name == <span class="string">'Signer'</span> }.id</pre></div></div>
|
|
587
|
+
|
|
588
|
+
</li>
|
|
589
|
+
|
|
590
|
+
|
|
591
|
+
<li id="section-34">
|
|
592
|
+
<div class="annotation">
|
|
593
|
+
|
|
594
|
+
<div class="pilwrap ">
|
|
595
|
+
<a class="pilcrow" href="#section-34">¶</a>
|
|
596
|
+
</div>
|
|
597
|
+
<p>Add recipient to envelope</p>
|
|
598
|
+
|
|
599
|
+
</div>
|
|
600
|
+
|
|
601
|
+
<div class="content"><div class='highlight'><pre> add = envelope.add_recipient!(recipient)</pre></div></div>
|
|
602
|
+
|
|
603
|
+
</li>
|
|
604
|
+
|
|
605
|
+
|
|
606
|
+
<li id="section-35">
|
|
607
|
+
<div class="annotation">
|
|
608
|
+
|
|
609
|
+
<div class="pilwrap ">
|
|
610
|
+
<a class="pilcrow" href="#section-35">¶</a>
|
|
611
|
+
</div>
|
|
612
|
+
<p>Get recipient id</p>
|
|
613
|
+
|
|
614
|
+
</div>
|
|
615
|
+
|
|
616
|
+
<div class="content"><div class='highlight'><pre> recipient.id = add[<span class="symbol">:recipient</span>][<span class="symbol">:id</span>]</pre></div></div>
|
|
617
|
+
|
|
618
|
+
</li>
|
|
619
|
+
|
|
620
|
+
|
|
621
|
+
<li id="section-36">
|
|
622
|
+
<div class="annotation">
|
|
623
|
+
|
|
624
|
+
<div class="pilwrap ">
|
|
625
|
+
<a class="pilcrow" href="#section-36">¶</a>
|
|
626
|
+
</div>
|
|
627
|
+
<p>Get document id</p>
|
|
628
|
+
|
|
629
|
+
</div>
|
|
630
|
+
|
|
631
|
+
<div class="content"><div class='highlight'><pre> document = envelope.documents!({})</pre></div></div>
|
|
632
|
+
|
|
633
|
+
</li>
|
|
634
|
+
|
|
635
|
+
|
|
636
|
+
<li id="section-37">
|
|
637
|
+
<div class="annotation">
|
|
638
|
+
|
|
639
|
+
<div class="pilwrap ">
|
|
640
|
+
<a class="pilcrow" href="#section-37">¶</a>
|
|
641
|
+
</div>
|
|
642
|
+
<p>Get field and add the location to field</p>
|
|
643
|
+
|
|
644
|
+
</div>
|
|
645
|
+
|
|
646
|
+
<div class="content"><div class='highlight'><pre> field = <span class="constant">GroupDocs::Signature::Field</span>.get!({}).detect { |f| f.type == <span class="symbol">:signature</span> }
|
|
647
|
+
field.location = {<span class="symbol">:location_x</span> => <span class="number">0</span>.<span class="number">15</span>, <span class="symbol">:location_y</span> => <span class="number">0</span>.<span class="number">73</span>, <span class="symbol">:location_w</span> => <span class="number">150</span>, <span class="symbol">:location_h</span> => <span class="number">50</span>, <span class="symbol">:page</span> => <span class="number">1</span>}
|
|
648
|
+
field.name = <span class="string">'EMPLOYEE SIGNATURE'</span></pre></div></div>
|
|
649
|
+
|
|
650
|
+
</li>
|
|
651
|
+
|
|
652
|
+
|
|
653
|
+
<li id="section-38">
|
|
654
|
+
<div class="annotation">
|
|
655
|
+
|
|
656
|
+
<div class="pilwrap ">
|
|
657
|
+
<a class="pilcrow" href="#section-38">¶</a>
|
|
658
|
+
</div>
|
|
659
|
+
<p>Add field to envelope</p>
|
|
660
|
+
|
|
661
|
+
</div>
|
|
662
|
+
|
|
663
|
+
<div class="content"><div class='highlight'><pre> envelope.add_field!(field, document[<span class="number">0</span>], recipient, {})</pre></div></div>
|
|
664
|
+
|
|
665
|
+
</li>
|
|
666
|
+
|
|
667
|
+
|
|
668
|
+
<li id="section-39">
|
|
669
|
+
<div class="annotation">
|
|
670
|
+
|
|
671
|
+
<div class="pilwrap ">
|
|
672
|
+
<a class="pilcrow" href="#section-39">¶</a>
|
|
673
|
+
</div>
|
|
674
|
+
<p>Send envelop</p>
|
|
675
|
+
|
|
676
|
+
</div>
|
|
677
|
+
|
|
678
|
+
<div class="content"><div class='highlight'><pre> envelope.send!({<span class="symbol">:callbackUrl</span> => settings.callback})</pre></div></div>
|
|
679
|
+
|
|
680
|
+
</li>
|
|
681
|
+
|
|
682
|
+
|
|
683
|
+
<li id="section-40">
|
|
684
|
+
<div class="annotation">
|
|
685
|
+
|
|
686
|
+
<div class="pilwrap ">
|
|
687
|
+
<a class="pilcrow" href="#section-40">¶</a>
|
|
688
|
+
</div>
|
|
689
|
+
<p>Get url from request</p>
|
|
257
690
|
|
|
258
691
|
</div>
|
|
259
692
|
|
|
260
|
-
<div class="content"><div class='highlight'><pre>
|
|
693
|
+
<div class="content"><div class='highlight'><pre> <span class="keyword">case</span> settings.base_path
|
|
694
|
+
|
|
695
|
+
<span class="keyword">when</span> <span class="string">'https://stage-api-groupdocs.dynabic.com'</span>
|
|
696
|
+
url = <span class="string">"http://stage-apps-groupdocs.dynabic.com/signature/signembed/<span class="subst">#{envelope.id}</span>/<span class="subst">#{recipient.id}</span>"</span>
|
|
697
|
+
<span class="keyword">when</span> <span class="string">'https://dev-api-groupdocs.dynabic.com'</span>
|
|
698
|
+
url = <span class="string">"http://dev-apps-groupdocs.dynabic.com/signature/signembed/<span class="subst">#{envelope.id}</span>/<span class="subst">#{recipient.id}</span>"</span>
|
|
699
|
+
<span class="keyword">else</span>
|
|
700
|
+
url = <span class="string">"https://apps.groupdocs.com/signature/signembed/<span class="subst">#{envelope.id}</span>/<span class="subst">#{recipient.id}</span>"</span>
|
|
701
|
+
<span class="keyword">end</span>
|
|
702
|
+
|
|
703
|
+
|
|
704
|
+
iframe = <span class="constant">GroupDocs::Api::Request</span>.new(<span class="symbol">:path</span> => url).prepare_and_sign_url</pre></div></div>
|
|
705
|
+
|
|
706
|
+
</li>
|
|
707
|
+
|
|
708
|
+
|
|
709
|
+
<li id="section-41">
|
|
710
|
+
<div class="annotation">
|
|
711
|
+
|
|
712
|
+
<div class="pilwrap ">
|
|
713
|
+
<a class="pilcrow" href="#section-41">¶</a>
|
|
714
|
+
</div>
|
|
715
|
+
<p>Make iframe</p>
|
|
261
716
|
|
|
717
|
+
</div>
|
|
718
|
+
|
|
719
|
+
<div class="content"><div class='highlight'><pre> iframe = <span class="string">"<iframe src='<span class="subst">#{iframe}</span>' frameborder='0' width='720' height='600'></iframe>"</span>
|
|
720
|
+
message = <span class="string">"<p>File was uploaded to GroupDocs. Here you can see your <strong><span class="subst">#{name}</span></strong> file in the GroupDocs Embedded Viewer.</p>"</span>
|
|
262
721
|
<span class="keyword">rescue</span> <span class="constant">Exception</span> => e
|
|
263
722
|
err = e.message
|
|
264
723
|
<span class="keyword">end</span></pre></div></div>
|
|
@@ -266,17 +725,17 @@
|
|
|
266
725
|
</li>
|
|
267
726
|
|
|
268
727
|
|
|
269
|
-
<li id="section-
|
|
728
|
+
<li id="section-42">
|
|
270
729
|
<div class="annotation">
|
|
271
730
|
|
|
272
731
|
<div class="pilwrap ">
|
|
273
|
-
<a class="pilcrow" href="#section-
|
|
732
|
+
<a class="pilcrow" href="#section-42">¶</a>
|
|
274
733
|
</div>
|
|
275
|
-
<p>
|
|
734
|
+
<p>Set variables for template</p>
|
|
276
735
|
|
|
277
736
|
</div>
|
|
278
737
|
|
|
279
|
-
<div class="content"><div class='highlight'><pre> haml <span class="symbol">:sample21</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">:email</span> => settings.email, <span class="symbol">:name</span> => settings.name, <span class="symbol">:lastName</span> => settings.lastName, <span class="symbol">:iframe</span> => iframe, <span class="symbol">:err</span> => err}
|
|
738
|
+
<div class="content"><div class='highlight'><pre> haml <span class="symbol">:sample21</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">:email</span> => settings.email, <span class="symbol">:name</span> => settings.name, <span class="symbol">:lastName</span> => settings.lastName, <span class="symbol">:iframe</span> => iframe, <span class="symbol">:massage</span> => message, <span class="symbol">:err</span> => err, <span class="symbol">:callback</span> => settings.callback,}
|
|
280
739
|
<span class="keyword">end</span></pre></div></div>
|
|
281
740
|
|
|
282
741
|
</li>
|