groupdocs 1.5.5 → 1.5.6

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.
Files changed (39) hide show
  1. checksums.yaml +8 -8
  2. data/lib/groupdocs/datasource.rb +66 -1
  3. data/lib/groupdocs/document.rb +21 -31
  4. data/lib/groupdocs/document/annotation.rb +8 -5
  5. data/lib/groupdocs/job.rb +4 -3
  6. data/lib/groupdocs/post.rb +4 -12
  7. data/lib/groupdocs/questionnaire.rb +40 -44
  8. data/lib/groupdocs/signature.rb +47 -30
  9. data/lib/groupdocs/signature/envelope.rb +35 -7
  10. data/lib/groupdocs/signature/field.rb +1 -0
  11. data/lib/groupdocs/signature/field/location.rb +6 -0
  12. data/lib/groupdocs/signature/form.rb +33 -1
  13. data/lib/groupdocs/signature/shared/document_methods.rb +1 -0
  14. data/lib/groupdocs/storage/file.rb +19 -10
  15. data/lib/groupdocs/subscription.rb +3 -10
  16. data/lib/groupdocs/version.rb +1 -1
  17. data/spec/groupdocs/datasource_spec.rb +41 -0
  18. data/spec/groupdocs/document/annotation_spec.rb +38 -6
  19. data/spec/groupdocs/document_spec.rb +258 -25
  20. data/spec/groupdocs/job_spec.rb +52 -0
  21. data/spec/groupdocs/questionnaire_spec.rb +45 -9
  22. data/spec/groupdocs/signature_spec.rb +13 -0
  23. data/spec/groupdocs/storage/file_spec.rb +68 -0
  24. data/spec/groupdocs/subscription_spec.rb +119 -0
  25. data/spec/groupdocs/user_spec.rb +75 -3
  26. data/spec/support/json/annotation_collaborators_add.json +31 -0
  27. data/spec/support/json/annotation_collaborators_clear.json +22 -0
  28. data/spec/support/json/document_html_urls.json +12 -0
  29. data/spec/support/json/document_shared_documents_get.json +2 -1
  30. data/spec/support/json/job_resources_get.json +16 -0
  31. data/spec/support/json/jobs_documents.json +49 -30
  32. data/spec/support/json/subscription_billing_set.json +21 -0
  33. data/spec/support/json/subscription_countries_get.json +93 -0
  34. data/spec/support/json/subscription_get.json +23 -0
  35. data/spec/support/json/subscription_get_plan.json +48 -0
  36. data/spec/support/json/subscription_invoices_get.json +18 -0
  37. data/spec/support/json/subscription_states_get.json +93 -0
  38. data/spec/support/json/subscription_wizard_get.json +8 -0
  39. metadata +13 -2
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- MDQxMzhjNGEyYjliMTRmNDdhMDBkN2ZiODg4MGYwZDYxNTkxMzJmMw==
4
+ OTM5YTU3Y2Q2MTY1M2RmMjdhODZkMTZhNDdmZGE5YjdlZWY1ZDc5Mw==
5
5
  data.tar.gz: !binary |-
6
- ODVkNmY0ODYwMTIzMWEyNzM1ZjFlNTQ2MDA0YjZhMzkyMTgwZmM3ZQ==
6
+ ZmUwM2M1N2Y5ZmJiYTFkNGYyNDQ5NzcyOGY4ZWVhNDQwODRlMTEzMQ==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- NjEzYzQ5YjAwMmEzNDgwMmQ0NmRlNzAwNDU0NTk5MDRlOGRiMzM1NWIxMmRk
10
- NDk1NDE3ZGNmMmYzNTM3MWNiOTMzMDkzMmZlY2JkM2MzNzU3ZDMxMmVhODEw
11
- OGVlMjE2MzM2NjdjNjBkNWNkYWZmM2E3ZjhjYmJhYjQ2NmFkMjg=
9
+ OWY0NTg5N2I3YTQzNjJhOGI5NTYzYjk5M2FlODRhNDJmMjllM2EwYTg0M2Mx
10
+ MWNmMWRhMjc5NjNhZjRkOGNjY2E0MWU1ZDRkY2JmNWY1N2Q1MmNlMzg5ZTNk
11
+ Mzc2NDgwOWVjMTlkOWQ0NzMxM2E4MTExZTQyNjNlOTM0NGMwZjg=
12
12
  data.tar.gz: !binary |-
13
- MjBmMTU5MTU1YjE4YjMwMzZlZGU4NjQzMzY4MDBlMzQyMWQxNTU0YmJiMzJi
14
- N2UwNWJmM2Q3NDI0ZTE1MWM5ZGU5NDFmMGM0YTdjMDUxZjM2MWJiMjE4ZTkw
15
- ZmJhYjFmODkxMDBiZTI3YTk1OTQ2OGExYThhOWMwMDFhNTdkYjY=
13
+ YjMwNmYxNzU4YWQ2N2RmN2MwZGU1NDYwODlmYTdkYmVmNjBmN2VmN2M4MWY1
14
+ NjI1ODQyZTVhNGYwZjFhMTQzYmEyNDZhYTA5MTJmMzNjOWFkZDc0NmNmODk5
15
+ MWMwY2UxNGNkMDMzYTlmYjkyMzcyNjRiNjFmYTA4OWQ3MGM4MDc=
@@ -97,7 +97,7 @@ module GroupDocs
97
97
  # Adds datasource.
98
98
  #
99
99
  # @example
100
- # field = GroupDocs::DataSource::Field.new(field: 'test', values: %w(test test))
100
+ # field = GroupDocs::DataSource::Field.new(name: 'test', values: %w(test test))
101
101
  # datasource = GroupDocs::DataSource.new
102
102
  # datasource.add_field(field)
103
103
  # datasource.add!
@@ -179,5 +179,70 @@ module GroupDocs
179
179
  nil
180
180
  end
181
181
 
182
+ #
183
+ # Add job document datasource.
184
+ #
185
+ # @example
186
+ # file = GroupDocs::Storage::File.new(guid => "(file guid)").to_document
187
+ # field = GroupDocs::DataSource::Field.new(:name => "test")
188
+ # datasource = GroupDocs::DataSource.new
189
+ # datasource.add_field(field).add!()
190
+ # job = GroupDocs::Job.create!()
191
+ # file_id = job.add_document!(file)
192
+ # datasource = add_datasourse!(job, file_id, datasource)
193
+ #
194
+ # @param [GroupDocs::DataSource] datasource
195
+ # @param [String] jobId Job identifier
196
+ # @param [String] fileId File identifier
197
+ # @param [String] datasourceId
198
+ # @param [Hash] access Access credentials
199
+ # @option access [String] :client_id
200
+ # @option access [String] :private_key
201
+ #
202
+ def add_datasource!(job, file_id, datasource, access = {})
203
+ datasource.is_a?(GroupDocs::DataSource) or raise ArgumentError,
204
+ "Datasource should be GroupDocs::DataSource object, received: #{datasource.inspect}"
205
+
206
+ Api::Request.new do |request|
207
+ request[:access] = access
208
+ request[:method] = :PUT
209
+ request[:path] = "/merge/{{client_id}}/jobs/#{job.id}/files/#{file_id}/datasources/#{datasource.id}"
210
+ end.execute!
211
+ end
212
+
213
+ #
214
+ # Add job document datasource fields.
215
+ #
216
+ #
217
+ # @example
218
+ # file = GroupDocs::Storage::File.new(guid => "(file guid)").to_document
219
+ # field = GroupDocs::DataSource::Field.new(:name => "test")
220
+ # datasource = GroupDocs::DataSource.new
221
+ # datasource.add_field(field)
222
+ # job = GroupDocs::Job.create!()
223
+ # file_id = job.add_document!(file)
224
+ # datasource = add_datasourse!(job, file_id, datasource)
225
+ #
226
+ #
227
+ #
228
+ # @param [String] jobId Job identifier
229
+ # @param [String] fileId File identifier
230
+ # @param [Array] datasourceFields
231
+ # @param [Hash] access Access credentials
232
+ # @option access [String] :client_id
233
+ # @option access [String] :private_key
234
+ #
235
+ def add_datasource_fields!(job, file_id, datasource, access = {})
236
+ datasource.is_a?(GroupDocs::DataSource) or raise ArgumentError,
237
+ "Datasource should be GroupDocs::DataSource object, received: #{datasource.inspect}"
238
+ Api::Request.new do |request|
239
+ request[:access] = access
240
+ request[:method] = :PUT
241
+ request[:path] = "/merge/{{client_id}}/jobs/#{job.id}/files/#{file_id}/datasources"
242
+ request[:request_body] = datasource.fields
243
+ end.execute!
244
+
245
+ end
246
+
182
247
  end # DataSource
183
248
  end # GroupDocs
@@ -106,16 +106,17 @@ module GroupDocs
106
106
  documents_to_sign = []
107
107
  documents.map(&:file).each do |file|
108
108
  document = { :name => file.name }
109
- contents = File.read(file.local_path)
109
+ contents = File.open(file.local_path, 'rb').read
110
110
  contents = Base64.strict_encode64(contents)
111
111
  document.merge!(:data => "data:#{mime_type(file.local_path)};base64,#{contents}")
112
112
 
113
113
  documents_to_sign << document
114
+
114
115
  end
115
116
 
116
117
  signers = []
117
118
  signatures.each do |signature|
118
- contents = File.read(signature.image_path)
119
+ contents = File.open(signature.image_path, 'rb').read
119
120
  contents = Base64.strict_encode64(contents)
120
121
  signer = { :name => signature.name, :data => "data:#{mime_type(signature.image_path)};base64,#{contents}" }
121
122
  signer.merge!(signature.position)
@@ -123,6 +124,7 @@ module GroupDocs
123
124
  signer.merge!(:placeSignatureOn => nil)
124
125
 
125
126
  signers << signer
127
+
126
128
  end
127
129
 
128
130
  json = Api::Request.new do |request|
@@ -131,14 +133,8 @@ module GroupDocs
131
133
  request[:path] = '/signature/{{client_id}}/sign'
132
134
  request[:request_body] = { :documents => documents_to_sign, :signers => signers }
133
135
  end.execute!
136
+ json[:jobId]
134
137
 
135
- signed_documents = []
136
- json[:documents].each_with_index do |document, i|
137
- file = Storage::File.new(:guid => document[:documentId], :name => "#{documents[i].file.name}_signed.pdf")
138
- signed_documents << Document.new(:file => file)
139
- end
140
-
141
- signed_documents
142
138
  end
143
139
 
144
140
  #
@@ -182,7 +178,7 @@ module GroupDocs
182
178
  metadata.views_count = json[:views_count]
183
179
  if json[:last_view]
184
180
  metadata.last_view = json[:last_view]
185
- metadata.last_view.document = new(:file => Storage::File.new(json))
181
+
186
182
  end
187
183
  end
188
184
  end
@@ -301,7 +297,10 @@ module GroupDocs
301
297
  #
302
298
  # Returns a stream of bytes representing a particular document page image.
303
299
  #
304
- #
300
+ # @param [String] path Document path
301
+ # @param [String] name Name document (format - jpg)
302
+ # @example path = "#{File.dirname(__FILE__)}"
303
+ # name = "test.jpg"
305
304
  # @param [Integer] page_number Document page number to get image for
306
305
  # @param [Integer] dimension Image dimension "<width>x<height>"(500x600)
307
306
  # @param [Hash] options
@@ -431,7 +430,7 @@ module GroupDocs
431
430
  # @example
432
431
  # file = GroupDocs::Storage::Folder.list!.last
433
432
  # document = file.to_document
434
- # document.page_html_urls! 1024, 768, first_page: 0, page_count: 1
433
+ # document.page_html_urls! first_page: 0, page_count: 1
435
434
  #
436
435
  # @param [Hash] options
437
436
  # @option options [Integer] :first_page Start page to return image for (starting with 0)
@@ -461,13 +460,11 @@ module GroupDocs
461
460
  # @option access [String] :private_key
462
461
  #
463
462
  def editlock!(access = {})
464
- json = Api::Request.new do |request|
463
+ Api::Request.new do |request|
465
464
  request[:access] = access
466
465
  request[:method] = :GET
467
466
  request[:path] = "/doc/{{client_id}}/files/#{file.guid}/editlock"
468
467
  end.execute!
469
-
470
- json[:edit_url]
471
468
  end
472
469
 
473
470
  #
@@ -487,7 +484,6 @@ module GroupDocs
487
484
  request[:path] = "/doc/{{client_id}}/files/#{file.guid}/editlock"
488
485
  end
489
486
  api.add_params(options).execute!
490
-
491
487
  end
492
488
 
493
489
  #
@@ -504,7 +500,6 @@ module GroupDocs
504
500
  request[:method] = :GET
505
501
  request[:path] = "/doc/{{client_id}}/files/#{file.guid}/tags"
506
502
  end.execute!
507
-
508
503
  end
509
504
 
510
505
  #
@@ -516,13 +511,11 @@ module GroupDocs
516
511
  # @return [String]
517
512
  #
518
513
  def tags_set!(access = {})
519
- json = Api::Request.new do |request|
514
+ Api::Request.new do |request|
520
515
  request[:access] = access
521
516
  request[:method] = :PUT
522
517
  request[:path] = "/doc/{{client_id}}/files/#{file.guid}/tags"
523
518
  end.execute!
524
-
525
- json[:document_id]
526
519
  end
527
520
 
528
521
  #
@@ -534,13 +527,11 @@ module GroupDocs
534
527
  # @return [String]
535
528
  #
536
529
  def tags_clear!(access = {})
537
- json = Api::Request.new do |request|
530
+ Api::Request.new do |request|
538
531
  request[:access] = access
539
532
  request[:method] = :DELETE
540
533
  request[:path] = "/doc/{{client_id}}/files/#{file.guid}/tags"
541
534
  end.execute!
542
-
543
- json[:document_id]
544
535
  end
545
536
 
546
537
  #
@@ -706,7 +697,6 @@ module GroupDocs
706
697
  metadata.views_count = json[:views_count]
707
698
  if json[:last_view]
708
699
  metadata.last_view = json[:last_view]
709
- metadata.last_view.document = self
710
700
  end
711
701
  end
712
702
  end
@@ -940,15 +930,15 @@ module GroupDocs
940
930
  #
941
931
  # @raise [ArgumentError] if datasource is not GroupDocs::DataSource object
942
932
  #
943
- def datasource_fields!(datasource, datasourceFields, options = {}, access = {})
933
+ def datasource_fields!(datasource, options = {}, access = {})
944
934
  datasource.is_a?(GroupDocs::DataSource) or raise ArgumentError,
945
935
  "Datasource should be GroupDocs::DataSource object, received: #{datasource.inspect}"
946
936
 
947
937
  api = Api::Request.new do |request|
948
938
  request[:access] = access
949
939
  request[:method] = :POST
950
- request[:path] = "/merge/{{client_id}}/files/#{file.guid}/datasources/"
951
- request[:request_body] = datasourceFields
940
+ request[:path] = "/merge/{{client_id}}/files/#{file.guid}/datasources"
941
+ request[:request_body] = datasource.fields
952
942
  end
953
943
  api.add_params(options)
954
944
  json = api.execute!
@@ -1099,7 +1089,7 @@ module GroupDocs
1099
1089
  #
1100
1090
  # @raise [ArgumentError] if document is not GroupDocs::Document object
1101
1091
  #
1102
- def compare!(document, access = {})
1092
+ def compare!(document, callback, access = {})
1103
1093
  document.is_a?(GroupDocs::Document) or raise ArgumentError,
1104
1094
  "Document should be GroupDocs::Document object, received: #{document.inspect}"
1105
1095
 
@@ -1108,7 +1098,7 @@ module GroupDocs
1108
1098
  request[:method] = :GET
1109
1099
  request[:path] = "/comparison/{{client_id}}/comparison/compare"
1110
1100
  end
1111
- api.add_params(:source => file.guid, :target => document.file.guid)
1101
+ api.add_params(:source => file.guid, :target => document.file.guid, :callback => callback)
1112
1102
  json = api.execute!
1113
1103
 
1114
1104
  Job.new(:id => json[:job_id])
@@ -1185,7 +1175,7 @@ module GroupDocs
1185
1175
  # @option access [String] :private_key
1186
1176
  #
1187
1177
  #
1188
- def download!( path, name, options = {}, access = {})
1178
+ def download!( path, options = {}, access = {})
1189
1179
  api = Api::Request.new do |request|
1190
1180
  request[:access] = access
1191
1181
  request[:method] = :DOWNLOAD
@@ -1194,7 +1184,7 @@ module GroupDocs
1194
1184
  api.add_params(options)
1195
1185
  response = api.execute!
1196
1186
 
1197
- filepath = "#{path}/#{name}"
1187
+ filepath = "#{path}/#{file.name}"
1198
1188
  Object::File.open(filepath, 'wb') do |file|
1199
1189
  file.write(response)
1200
1190
  end
@@ -166,19 +166,22 @@ module GroupDocs
166
166
  #
167
167
  # @example
168
168
  # document = GroupDocs::Storage::Folder.list!.first.to_document
169
- # annotation = GroupDocs::Document::Annotation.new(document: document)
169
+ # annotation = GroupDocs::Document::Annotation.new(document: document) #
170
170
  # annotation.create!
171
171
  #
172
+ # @param [Hash] info Annotation info
173
+ # @option info [Array] :box
174
+ # @option info [Array] :annotationPosition
172
175
  # @param [Hash] access Access credentials
173
176
  # @option access [String] :client_id
174
177
  # @option access [String] :private_key
175
178
  #
176
- def create!(access = {})
179
+ def create!(info, access = {})
177
180
  json = Api::Request.new do |request|
178
181
  request[:access] = access
179
182
  request[:method] = :POST
180
183
  request[:path] = "/ant/{{client_id}}/files/#{document.file.guid}/annotations"
181
- request[:request_body] = to_hash
184
+ request[:request_body] = info
182
185
  end.execute!
183
186
 
184
187
  json.each do |field, value|
@@ -193,7 +196,7 @@ module GroupDocs
193
196
  # @option access [String] :client_id
194
197
  # @option access [String] :private_key
195
198
  #
196
- def remove!(access = {})
199
+ def self.remove!(guid, access = {})
197
200
  Api::Request.new do |request|
198
201
  request[:access] = access
199
202
  request[:method] = :DELETE
@@ -295,7 +298,7 @@ module GroupDocs
295
298
  request[:access] = access
296
299
  request[:method] = :PUT
297
300
  request[:path] = "/ant/{{client_id}}/annotations/#{guid}/size"
298
- request[:request_body] = { :x => x, :y => y }
301
+ request[:request_body] = { :width => x, :height => y }
299
302
  end.execute!
300
303
 
301
304
  self.width = x
data/lib/groupdocs/job.rb CHANGED
@@ -89,16 +89,17 @@ module GroupDocs
89
89
  #
90
90
  # Returns job by its identifier.
91
91
  #
92
- # @param [String] options
92
+ # @param [Hash] options
93
93
  # @option statusIds [String] :statusIds (required)
94
- # @option actions [String] :actions
94
+ # @option actions [Integer] :actions
95
95
  # @option excluded_actions [String] :excluded_actions
96
96
  # @param [Hash] access Access credentials
97
97
  # @option access [String] :client_id
98
98
  # @option access [String] :private_key
99
99
  # @return [GroupDocs::Job]
100
100
  #
101
- def self.get_resources!(options = {}, access = {})
101
+ def self.get_resources!(options = {} , access = {})
102
+ options[:actions] = convert_actions_to_byte(options[:actions])
102
103
  api = Api::Request.new do |request|
103
104
  request[:access] = access
104
105
  request[:method] = :GET
@@ -16,9 +16,7 @@ module GroupDocs
16
16
  request[:path] = '/post/file.rename'
17
17
  end
18
18
  api.add_params(options)
19
- json = api.execute!
20
-
21
- new(json)
19
+ api.execute!
22
20
  end
23
21
 
24
22
  # Delete by post.
@@ -34,9 +32,7 @@ module GroupDocs
34
32
  request[:path] = '/post/file.delete'
35
33
  end
36
34
  api.add_params(options)
37
- json = api.execute!
38
-
39
- new(json)
35
+ api.execute!
40
36
  end
41
37
 
42
38
  # Delete from folder by post.
@@ -52,9 +48,7 @@ module GroupDocs
52
48
  request[:path] = '/post/file.delete.in'
53
49
  end
54
50
  api.add_params(options)
55
- json = api.execute!
56
-
57
- new(json)
51
+ api.execute!
58
52
  end
59
53
 
60
54
  # Compress by post.
@@ -71,9 +65,7 @@ module GroupDocs
71
65
  request[:path] = '/post/file.compress'
72
66
  end
73
67
  api.add_params(options)
74
- json = api.execute!
75
-
76
- new(json)
68
+ api.execute!
77
69
  end
78
70
 
79
71
 
@@ -15,6 +15,8 @@ module GroupDocs
15
15
  # @option options [Symbol] :status Filter questionnaires by status
16
16
  # @option options [Integer] :page_number Page to start with
17
17
  # @option options [Integer] :page_size How many items to list
18
+ # @option options [String] :orderBy Order by column (optional)
19
+ # @option options [Bool] :isAscending Order by ascending or descending (optional)
18
20
  # @param [Hash] access Access credentials
19
21
  # @option access [String] :client_id
20
22
  # @option access [String] :private_key
@@ -128,46 +130,6 @@ module GroupDocs
128
130
  @pages << page
129
131
  end
130
132
 
131
- #
132
- # Add job document datasource.
133
- #
134
- # @param [GroupDocs::DataSource] datasource
135
- # @param [String] jobId Job identifier
136
- # @param [String] fileId File identifier
137
- # @param [String] datasourceId
138
- # @param [Hash] access Access credentials
139
- # @option access [String] :client_id
140
- # @option access [String] :private_key
141
- #
142
- def self.add_datasource!(jobId, datasource, access = {})
143
- json = Api::Request.new do |request|
144
- request[:access] = access
145
- request[:method] = :PUT
146
- request[:path] = "/merge/{{client_id}}/jobs/#{jobId}/files/#{file.guid}/datasources/#{datasource.id}"
147
- end.execute!
148
-
149
- json[:datasource_id]
150
- end
151
-
152
- #
153
- # Add job document datasource fields.
154
- #
155
- # @param [String] jobId Job identifier
156
- # @param [String] fileId File identifier
157
- # @param [Array] datasourceFields
158
- # @param [Hash] access Access credentials
159
- # @option access [String] :client_id
160
- # @option access [String] :private_key
161
- #
162
- def self.add_datasource_fields!(jobId, fileId, datasourceFields, access = {})
163
- Api::Request.new do |request|
164
- request[:access] = access
165
- request[:method] = :PUT
166
- request[:path] = "/merge/{{client_id}}/jobs/#{jobId}/files/#{fileId}/datasources/"
167
- request[:request_body] = datasourceFields
168
- end.execute!
169
-
170
- end
171
133
 
172
134
  #
173
135
  # Creates questionnaire.
@@ -263,20 +225,26 @@ module GroupDocs
263
225
  end
264
226
  end
265
227
 
266
- #
228
+ #
267
229
  # Returns an array of questionnaire collectors.
268
230
  #
231
+ #
232
+ # @param [Hash] options Options
233
+ # @option options [String] :orderBy Order by column (required)
234
+ # @option options [Boolean] :isAsc Order by ascending or descending (required)
269
235
  # @param [Hash] access Access credentials
270
236
  # @option access [String] :client_id
271
237
  # @option access [String] :private_key
272
238
  # @return [Array<GroupDocs::Questionnaire::Collector>]
273
239
  #
274
- def collectors!(access = {})
275
- json = Api::Request.new do |request|
240
+ def collectors!(options = {}, access = {})
241
+ api = Api::Request.new do |request|
276
242
  request[:access] = access
277
243
  request[:method] = :GET
278
244
  request[:path] = "/merge/{{client_id}}/questionnaires/#{guid}/collectors"
279
- end.execute!
245
+ end
246
+ api = add_params(options)
247
+ json = api.execute!
280
248
 
281
249
  json[:collectors].map do |collector|
282
250
  collector.merge!(:questionnaire => self)
@@ -349,6 +317,34 @@ module GroupDocs
349
317
  Document::Field.new(field)
350
318
  end
351
319
  end
320
+
321
+ #
322
+ # Copy file to given path.
323
+ #
324
+ # @param [String] path (required)
325
+ # @param [String] mode Mode (optional)
326
+ # @param [Hash] options
327
+ # @option options [String] name
328
+ # @param [Hash] access Access credentials
329
+ # @option access [String] :client_id
330
+ # @option access [String] :private_key
331
+ # @return [Array] Templates
332
+ #
333
+ def copy_to_templates!(path, mode, options = {}, access = {})
334
+ options[:name] ||= name
335
+ path = prepare_path("#{path}/#{options[:name]}")
336
+
337
+ api = Api::Request.new do |request|
338
+ request[:access] = access
339
+ request[:method] = :PUT
340
+ request[:headers] = { :'Groupdocs-Copy' => id }
341
+ request[:path] = "/merge/{{client_id}}/files/#{path}"
342
+ end
343
+ api = add_params(:mode => mode)
344
+ json = api.execute!
345
+
346
+ json[:templates]
347
+ end
352
348
 
353
349
  end # Questionnaire
354
350
  end # GroupDocs