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
|
@@ -3,39 +3,152 @@ get '/sample21' do
|
|
|
3
3
|
haml :sample21
|
|
4
4
|
end
|
|
5
5
|
|
|
6
|
+
# POST request
|
|
7
|
+
post '/sample21/signature_callback' do
|
|
8
|
+
# Set download path
|
|
9
|
+
downloads_path = "#{File.dirname(__FILE__)}/../public/downloads"
|
|
10
|
+
|
|
11
|
+
# Get callback request
|
|
12
|
+
data = JSON.parse(request.body.read)
|
|
13
|
+
begin
|
|
14
|
+
raise 'Empty params!' if data.empty?
|
|
15
|
+
source_id = nil
|
|
16
|
+
client_id = nil
|
|
17
|
+
private_key = nil
|
|
18
|
+
|
|
19
|
+
# Get value of SourceId
|
|
20
|
+
data.each do |key, value|
|
|
21
|
+
if key == 'SourceId'
|
|
22
|
+
source_id = value
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
# Get private key and client_id from file user_info.txt
|
|
27
|
+
if File.exist?("#{File.dirname(__FILE__)}/../public/user_info.txt")
|
|
28
|
+
contents = File.read("#{File.dirname(__FILE__)}/../public/user_info.txt")
|
|
29
|
+
contents = contents.split(' ')
|
|
30
|
+
client_id = contents.first
|
|
31
|
+
private_key = contents.last
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
# Create Job instance
|
|
35
|
+
job = GroupDocs::Signature::Envelope.new({:id => source_id})
|
|
36
|
+
|
|
37
|
+
# Get document by job id
|
|
38
|
+
documents = job.documents!({}, {:client_id => client_id, :private_key => private_key})
|
|
39
|
+
|
|
40
|
+
# Download converted file
|
|
41
|
+
documents[0].file.download!(downloads_path, {:client_id => client_id, :private_key => private_key})
|
|
42
|
+
|
|
43
|
+
rescue Exception => e
|
|
44
|
+
err = e.message
|
|
45
|
+
end
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
# GET request
|
|
50
|
+
get '/sample21/check' do
|
|
51
|
+
|
|
52
|
+
# Check is there download directory
|
|
53
|
+
unless File.directory?("#{File.dirname(__FILE__)}/../public/downloads")
|
|
54
|
+
return 'Directory was not found.'
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
# Get file name from download directory
|
|
58
|
+
name = nil
|
|
59
|
+
Dir.entries("#{File.dirname(__FILE__)}/../public/downloads").each do |file|
|
|
60
|
+
name = file if file != '.' && file != '..'
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
name
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
# GET request
|
|
67
|
+
get '/sample21/downloads/:filename' do |filename|
|
|
68
|
+
# Send file with header to download it
|
|
69
|
+
send_file "#{File.dirname(__FILE__)}/../public/downloads/#{filename}", :filename => filename, :type => 'Application/octet-stream'
|
|
70
|
+
end
|
|
71
|
+
|
|
6
72
|
# POST request
|
|
7
73
|
post '/sample21' do
|
|
8
74
|
# set variables
|
|
9
|
-
set :client_id, params[:
|
|
10
|
-
set :private_key, params[:
|
|
75
|
+
set :client_id, params[:clientId]
|
|
76
|
+
set :private_key, params[:privateKey]
|
|
11
77
|
set :email, params[:email]
|
|
12
78
|
set :name, params[:name]
|
|
13
79
|
set :lastName, params[:lastName]
|
|
14
|
-
set :
|
|
80
|
+
set :fileId, params[:fileId]
|
|
81
|
+
set :callback, params[:callback]
|
|
82
|
+
set :base_path, params[:basePath]
|
|
83
|
+
set :url, params[:url]
|
|
84
|
+
set :source, params[:source]
|
|
85
|
+
|
|
86
|
+
# Set download path
|
|
87
|
+
downloads_path = "#{File.dirname(__FILE__)}/../public/downloads"
|
|
88
|
+
|
|
89
|
+
# Remove all files from download directory or create folder if it not there
|
|
90
|
+
if File.directory?(downloads_path)
|
|
91
|
+
Dir.foreach(downloads_path) { |f| fn = File.join(downloads_path, f); File.delete(fn) if f != '.' && f != '..' }
|
|
92
|
+
else
|
|
93
|
+
Dir::mkdir(downloads_path)
|
|
94
|
+
end
|
|
15
95
|
|
|
16
96
|
begin
|
|
97
|
+
# Check required variables
|
|
98
|
+
raise 'Please enter all required parameters' if settings.client_id.empty? or settings.private_key.empty? or settings.email.empty? or settings.name.empty? or settings.lastName.empty?
|
|
99
|
+
|
|
100
|
+
if settings.base_path.empty? then settings.base_path = 'https://api.groupdocs.com' end
|
|
17
101
|
|
|
18
|
-
#
|
|
19
|
-
|
|
102
|
+
# Configure your access to API server
|
|
103
|
+
GroupDocs.configure do |groupdocs|
|
|
104
|
+
groupdocs.client_id = settings.client_id
|
|
105
|
+
groupdocs.private_key = settings.private_key
|
|
106
|
+
# Optionally specify API server and version
|
|
107
|
+
groupdocs.api_server = settings.base_path # default is 'https://api.groupdocs.com'
|
|
108
|
+
end
|
|
20
109
|
|
|
21
|
-
#
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
110
|
+
# Write client and private key to the file for callback job
|
|
111
|
+
if settings.callback
|
|
112
|
+
out_file = File.new("#{File.dirname(__FILE__)}/../public/user_info.txt", 'w')
|
|
113
|
+
# white space is required
|
|
114
|
+
out_file.write("#{settings.client_id} ")
|
|
115
|
+
out_file.write("#{settings.private_key}")
|
|
116
|
+
out_file.close
|
|
117
|
+
end
|
|
27
118
|
|
|
119
|
+
file = nil
|
|
120
|
+
# get document by file GUID
|
|
121
|
+
case settings.source
|
|
122
|
+
when 'guid'
|
|
123
|
+
# Create instance of File
|
|
124
|
+
file = GroupDocs::Storage::File.new({:guid => settings.fileId}).to_document.metadata!()
|
|
125
|
+
file = file.last_view.document.file.to_document
|
|
126
|
+
when 'local'
|
|
127
|
+
# construct path
|
|
128
|
+
file_path = "#{Dir.tmpdir}/#{params[:file][:filename]}"
|
|
129
|
+
# open file
|
|
130
|
+
File.open(file_path, 'wb') { |f| f.write(params[:file][:tempfile].read) }
|
|
131
|
+
# make a request to API using client_id and private_key
|
|
132
|
+
file = GroupDocs::Storage::File.upload!(file_path, {}).to_document
|
|
133
|
+
when 'url'
|
|
134
|
+
# Upload file from defined url
|
|
135
|
+
file = GroupDocs::Storage::File.upload_web!(settings.url).to_document
|
|
136
|
+
else
|
|
137
|
+
raise 'Wrong GUID source.'
|
|
138
|
+
end
|
|
139
|
+
|
|
140
|
+
name = file.name
|
|
28
141
|
# create envelope using user id and entered by user name
|
|
29
142
|
envelope = GroupDocs::Signature::Envelope.new
|
|
30
|
-
envelope.name =
|
|
143
|
+
envelope.name = file.name
|
|
31
144
|
envelope.email_subject = 'Sing this!'
|
|
32
|
-
envelope.create!({}
|
|
145
|
+
envelope.create!({})
|
|
33
146
|
|
|
34
147
|
# Add uploaded document to envelope
|
|
35
|
-
envelope.add_document!(file
|
|
148
|
+
envelope.add_document!(file, {})
|
|
36
149
|
|
|
37
150
|
# Get role list for current user
|
|
38
|
-
roles = GroupDocs::Signature::Role.get!({}
|
|
151
|
+
roles = GroupDocs::Signature::Role.get!({})
|
|
39
152
|
|
|
40
153
|
# Create new recipient
|
|
41
154
|
recipient = GroupDocs::Signature::Recipient.new
|
|
@@ -45,21 +158,47 @@ post '/sample21' do
|
|
|
45
158
|
recipient.role_id = roles.detect { |role| role.name == 'Signer' }.id
|
|
46
159
|
|
|
47
160
|
# Add recipient to envelope
|
|
48
|
-
add = envelope.add_recipient!(recipient
|
|
161
|
+
add = envelope.add_recipient!(recipient)
|
|
162
|
+
|
|
163
|
+
# Get recipient id
|
|
164
|
+
recipient.id = add[:recipient][:id]
|
|
165
|
+
|
|
166
|
+
# Get document id
|
|
167
|
+
document = envelope.documents!({})
|
|
168
|
+
|
|
169
|
+
|
|
170
|
+
# Get field and add the location to field
|
|
171
|
+
field = GroupDocs::Signature::Field.get!({}).detect { |f| f.type == :signature }
|
|
172
|
+
field.location = {:location_x => 0.15, :location_y => 0.73, :location_w => 150, :location_h => 50, :page => 1}
|
|
173
|
+
field.name = 'EMPLOYEE SIGNATURE'
|
|
174
|
+
|
|
175
|
+
# Add field to envelope
|
|
176
|
+
envelope.add_field!(field, document[0], recipient, {})
|
|
49
177
|
|
|
50
|
-
# get recipient id
|
|
51
|
-
recipient_id = add[:recipient][:id]
|
|
52
178
|
|
|
53
179
|
# Send envelop
|
|
54
|
-
envelope.send!(
|
|
180
|
+
envelope.send!({:callbackUrl => settings.callback})
|
|
55
181
|
|
|
56
|
-
#
|
|
57
|
-
|
|
182
|
+
#Get url from request
|
|
183
|
+
case settings.base_path
|
|
184
|
+
|
|
185
|
+
when 'https://stage-api-groupdocs.dynabic.com'
|
|
186
|
+
url = "http://stage-apps-groupdocs.dynabic.com/signature/signembed/#{envelope.id}/#{recipient.id}"
|
|
187
|
+
when 'https://dev-api-groupdocs.dynabic.com'
|
|
188
|
+
url = "http://dev-apps-groupdocs.dynabic.com/signature/signembed/#{envelope.id}/#{recipient.id}"
|
|
189
|
+
else
|
|
190
|
+
url = "https://apps.groupdocs.com/signature/signembed/#{envelope.id}/#{recipient.id}"
|
|
191
|
+
end
|
|
58
192
|
|
|
193
|
+
|
|
194
|
+
iframe = GroupDocs::Api::Request.new(:path => url).prepare_and_sign_url
|
|
195
|
+
# Make iframe
|
|
196
|
+
iframe = "<iframe src='#{iframe}' frameborder='0' width='720' height='600'></iframe>"
|
|
197
|
+
message = "<p>File was uploaded to GroupDocs. Here you can see your <strong>#{name}</strong> file in the GroupDocs Embedded Viewer.</p>"
|
|
59
198
|
rescue Exception => e
|
|
60
199
|
err = e.message
|
|
61
200
|
end
|
|
62
201
|
|
|
63
|
-
#
|
|
64
|
-
haml :sample21, :locals => {:userId => settings.client_id, :privateKey => settings.private_key, :email => settings.email, :name => settings.name, :lastName => settings.lastName, :iframe => iframe, :err => err}
|
|
202
|
+
# Set variables for template
|
|
203
|
+
haml :sample21, :locals => {:userId => settings.client_id, :privateKey => settings.private_key, :email => settings.email, :name => settings.name, :lastName => settings.lastName, :iframe => iframe, :massage => message, :err => err, :callback => settings.callback,}
|
|
65
204
|
end
|
|
@@ -5,48 +5,99 @@ end
|
|
|
5
5
|
|
|
6
6
|
# POST request
|
|
7
7
|
post '/sample22' do
|
|
8
|
-
#
|
|
9
|
-
set :client_id, params[:
|
|
10
|
-
set :private_key, params[:
|
|
8
|
+
# Set variables
|
|
9
|
+
set :client_id, params[:clientId]
|
|
10
|
+
set :private_key, params[:privateKey]
|
|
11
11
|
set :fileId, params[:fileId]
|
|
12
12
|
set :email, params[:email]
|
|
13
|
-
set :first_name, params[:
|
|
14
|
-
set :last_name, params[:
|
|
13
|
+
set :first_name, params[:firstName]
|
|
14
|
+
set :last_name, params[:lastName]
|
|
15
|
+
set :base_path, params[:basePath]
|
|
16
|
+
set :url, params[:url]
|
|
17
|
+
set :source, params[:source]
|
|
18
|
+
|
|
15
19
|
|
|
16
20
|
begin
|
|
17
21
|
|
|
18
|
-
#
|
|
19
|
-
raise 'Please enter all required parameters' if settings.client_id.empty? or settings.private_key.empty? or settings.
|
|
22
|
+
# Check required variables
|
|
23
|
+
raise 'Please enter all required parameters' if settings.client_id.empty? or settings.private_key.empty? or settings.email.empty? or settings.first_name.empty? or settings.last_name.empty?
|
|
24
|
+
|
|
25
|
+
if settings.base_path.empty? then settings.base_path = 'https://api.groupdocs.com' end
|
|
26
|
+
|
|
27
|
+
# Configure your access to API server
|
|
28
|
+
GroupDocs.configure do |groupdocs|
|
|
29
|
+
groupdocs.client_id = settings.client_id
|
|
30
|
+
groupdocs.private_key = settings.private_key
|
|
31
|
+
# Optionally specify API server and version
|
|
32
|
+
groupdocs.api_server = settings.base_path # default is 'https://api.groupdocs.com'
|
|
33
|
+
end
|
|
34
|
+
file = nil
|
|
20
35
|
|
|
21
|
-
#
|
|
36
|
+
# get document by file GUID
|
|
37
|
+
case settings.source
|
|
38
|
+
when 'guid'
|
|
39
|
+
# Create instance of File
|
|
40
|
+
file = GroupDocs::Storage::File.new({:guid => settings.fileId})
|
|
41
|
+
when 'local'
|
|
42
|
+
filepath = "#{Dir.tmpdir}/#{params[:file][:filename]}"
|
|
43
|
+
# Open file
|
|
44
|
+
File.open(filepath, 'wb') { |f| f.write(params[:file][:tempfile].read) }
|
|
45
|
+
# Make a request to API using client_id and private_key
|
|
46
|
+
file = GroupDocs::Storage::File.upload!(filepath, {})
|
|
47
|
+
when 'url'
|
|
48
|
+
# Upload file from defined url
|
|
49
|
+
file = GroupDocs::Storage::File.upload_web!(settings.url)
|
|
50
|
+
else
|
|
51
|
+
raise 'Wrong GUID source.'
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
file = file.to_document
|
|
56
|
+
# Create new user
|
|
22
57
|
user = GroupDocs::User.new
|
|
58
|
+
|
|
23
59
|
user.primary_email = settings.email
|
|
24
|
-
user.nickname = settings.
|
|
60
|
+
user.nickname = settings.email
|
|
25
61
|
user.first_name = settings.first_name
|
|
26
62
|
user.last_name = settings.last_name
|
|
27
63
|
|
|
28
|
-
|
|
29
|
-
|
|
64
|
+
user.roles = [{:id => '3', :name => 'User'}]
|
|
65
|
+
# Update account
|
|
66
|
+
new_user = GroupDocs::User.update_account!(user)
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
# Set new collaboration
|
|
71
|
+
file.set_collaborators!([settings.email], 2)
|
|
72
|
+
|
|
73
|
+
# Get all collaborations
|
|
74
|
+
collaborations = file.collaborators!()
|
|
75
|
+
|
|
76
|
+
# Set document reviewers
|
|
77
|
+
file.set_reviewers!(collaborations)
|
|
78
|
+
|
|
30
79
|
|
|
31
|
-
#
|
|
32
|
-
|
|
80
|
+
#Get url from request
|
|
81
|
+
case settings.base_path
|
|
33
82
|
|
|
34
|
-
|
|
35
|
-
|
|
83
|
+
when 'https://stage-api-groupdocs.dynabic.com'
|
|
84
|
+
url = "http://stage-apps-groupdocs.dynabic.com/document-annotation2/embed/#{file.file.guid}?uid = #{new_user.guid}&download=true"
|
|
85
|
+
when 'https://dev-api-groupdocs.dynabic.com'
|
|
86
|
+
url = "http://dev-apps-groupdocs.dynabic.com/document-annotation2/embed/#{file.file.guid}?uid = #{new_user.guid}&download=true"
|
|
87
|
+
else
|
|
88
|
+
url = "https://apps.groupdocs.com/document-annotation2/embed/#{file.file.guid}?uid = #{new_user.guid}&download=true"
|
|
89
|
+
end
|
|
36
90
|
|
|
37
|
-
#
|
|
38
|
-
document.set_collaborators!([settings.email], 2, {:client_id => settings.client_id, :private_key => settings.private_key})
|
|
91
|
+
# Add the signature to url the request
|
|
39
92
|
|
|
40
|
-
|
|
41
|
-
collaborations = document.collaborators!({:client_id => settings.client_id, :private_key => settings.private_key})
|
|
93
|
+
iframe = GroupDocs::Api::Request.new(:path => url).prepare_and_sign_url
|
|
42
94
|
|
|
43
|
-
#
|
|
44
|
-
document.set_reviewers!(collaborations, {:client_id => settings.client_id, :private_key => settings.private_key})
|
|
95
|
+
iframe = "<iframe src='#{iframe}' frameborder='0' width='720' height='600'></iframe>"
|
|
45
96
|
|
|
46
97
|
rescue Exception => e
|
|
47
98
|
err = e.message
|
|
48
99
|
end
|
|
49
100
|
|
|
50
101
|
# set variables for template
|
|
51
|
-
haml :sample22, :locals => {:userId => settings.client_id, :privateKey => settings.private_key, :fileId => settings.fileId, :email => settings.email, :
|
|
102
|
+
haml :sample22, :locals => {:userId => settings.client_id, :privateKey => settings.private_key, :fileId => settings.fileId, :email => settings.email, :firstName => settings.first_name, :lastName => settings.last_name, :iframe => iframe, :err => err}
|
|
52
103
|
end
|
|
@@ -7,16 +7,27 @@ end
|
|
|
7
7
|
post '/sample23' do
|
|
8
8
|
# set variables
|
|
9
9
|
|
|
10
|
-
set :client_id, params[:
|
|
11
|
-
set :private_key, params[:
|
|
10
|
+
set :client_id, params[:clientId]
|
|
11
|
+
set :private_key, params[:privateKey]
|
|
12
12
|
set :source, params[:source]
|
|
13
13
|
set :file_id, params[:fileId]
|
|
14
14
|
set :url, params[:url]
|
|
15
|
+
set :base_path, params[:basePath]
|
|
15
16
|
|
|
16
17
|
begin
|
|
17
18
|
# check required variables
|
|
18
19
|
raise 'Please enter all required parameters' if settings.client_id.empty? or settings.private_key.empty?
|
|
19
20
|
|
|
21
|
+
if settings.base_path.empty? then settings.base_path = 'https://api.groupdocs.com' end
|
|
22
|
+
|
|
23
|
+
# Configure your access to API server
|
|
24
|
+
GroupDocs.configure do |groupdocs|
|
|
25
|
+
groupdocs.client_id = settings.client_id
|
|
26
|
+
groupdocs.private_key = settings.private_key
|
|
27
|
+
# Optionally specify API server and version
|
|
28
|
+
groupdocs.api_server = settings.base_path # default is 'https://api.groupdocs.com'
|
|
29
|
+
end
|
|
30
|
+
|
|
20
31
|
# get document by file GUID
|
|
21
32
|
case settings.source
|
|
22
33
|
when 'guid'
|
|
@@ -28,10 +39,10 @@ post '/sample23' do
|
|
|
28
39
|
# Open file
|
|
29
40
|
File.open(file_path, 'wb') { |f| f.write(params[:file][:tempfile].read) }
|
|
30
41
|
# Make a request to API using client_id and private_key
|
|
31
|
-
file = GroupDocs::Storage::File.upload!(file_path, {}
|
|
42
|
+
file = GroupDocs::Storage::File.upload!(file_path, {})
|
|
32
43
|
when 'url'
|
|
33
44
|
# Upload file from defined url
|
|
34
|
-
file = GroupDocs::Storage::File.upload_web!(settings.url
|
|
45
|
+
file = GroupDocs::Storage::File.upload_web!(settings.url)
|
|
35
46
|
else
|
|
36
47
|
raise 'Wrong GUID source.'
|
|
37
48
|
end
|
|
@@ -43,8 +54,8 @@ post '/sample23' do
|
|
|
43
54
|
document = file.to_document
|
|
44
55
|
|
|
45
56
|
#Create new page
|
|
46
|
-
page_image = document.page_images!(700, 700, {
|
|
47
|
-
|
|
57
|
+
page_image = document.page_images!(700, 700, {})
|
|
58
|
+
|
|
48
59
|
rescue Exception => e
|
|
49
60
|
err = e.message
|
|
50
61
|
end
|
|
@@ -6,25 +6,52 @@ end
|
|
|
6
6
|
# POST request
|
|
7
7
|
post '/sample24' do
|
|
8
8
|
# set variables
|
|
9
|
-
set :client_id, params[:
|
|
10
|
-
set :private_key, params[:
|
|
9
|
+
set :client_id, params[:clientId]
|
|
10
|
+
set :private_key, params[:privateKey]
|
|
11
11
|
set :url, params[:url]
|
|
12
|
+
set :base_path, params[:basePath]
|
|
12
13
|
|
|
13
14
|
begin
|
|
14
|
-
#
|
|
15
|
+
# Check required variables
|
|
15
16
|
raise 'Please enter all required parameters' if settings.client_id.empty? or settings.private_key.empty? or settings.url.nil?
|
|
16
17
|
|
|
17
|
-
|
|
18
|
+
if settings.base_path.empty? then settings.base_path = 'https://api.groupdocs.com' end
|
|
19
|
+
|
|
20
|
+
# Configure your access to API server
|
|
21
|
+
GroupDocs.configure do |groupdocs|
|
|
22
|
+
groupdocs.client_id = settings.client_id
|
|
23
|
+
groupdocs.private_key = settings.private_key
|
|
24
|
+
# Optionally specify API server and version
|
|
25
|
+
groupdocs.api_server = settings.base_path # default is 'https://api.groupdocs.com'
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
# Upload web file
|
|
18
29
|
file = GroupDocs::Storage::File.upload_web!(settings.url, {:client_id => settings.client_id, :private_key => settings.private_key})
|
|
19
30
|
|
|
20
|
-
#
|
|
31
|
+
# Construct result messages
|
|
21
32
|
message = "<p>File was uploaded to GroupDocs. Here you can see your <strong> file in the GroupDocs Embedded Viewer.</p>"
|
|
22
|
-
|
|
33
|
+
|
|
34
|
+
#Get url from request
|
|
35
|
+
case settings.base_path
|
|
36
|
+
|
|
37
|
+
when 'https://stage-api-groupdocs.dynabic.com'
|
|
38
|
+
url = "http://stage-apps-groupdocs.dynabic.com/document-viewer/embed/#{file.guid}"
|
|
39
|
+
when 'https://dev-api-groupdocs.dynabic.com'
|
|
40
|
+
url = "http://dev-apps-groupdocs.dynabic.com/document-viewer/embed/#{file.guid}"
|
|
41
|
+
else
|
|
42
|
+
url = "https://apps.groupdocs.com/document-viewer/embed/#{file.guid}"
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
# Add the signature to url te request
|
|
46
|
+
iframe = GroupDocs::Api::Request.new(:path => url).prepare_and_sign_url
|
|
47
|
+
|
|
48
|
+
# Construct result iframe
|
|
49
|
+
iframe = "<iframe src='#{iframe}' frameborder='0' width='720' height='600'></iframe>"
|
|
23
50
|
|
|
24
51
|
rescue Exception => e
|
|
25
52
|
err = e.message
|
|
26
53
|
end
|
|
27
54
|
|
|
28
|
-
#
|
|
55
|
+
# Set variables for template
|
|
29
56
|
haml :sample24, :locals => {:userId => settings.client_id, :privateKey => settings.private_key, :iframe => iframe, :message => message, :err => err}
|
|
30
57
|
end
|