groupdocs 1.0.0 → 1.1.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.travis.yml +0 -0
- data/CHANGELOG.md +22 -0
- data/Gemfile +0 -0
- data/README.md +4 -2
- data/Rakefile +0 -0
- data/examples/README.md +0 -0
- data/examples/annotations/Gemfile +0 -0
- data/examples/annotations/app.rb +0 -0
- data/groupdocs.gemspec +0 -0
- data/lib/groupdocs/api/entity.rb +0 -0
- data/lib/groupdocs/api/helpers/access_mode_helper.rb +0 -0
- data/lib/groupdocs/api/helpers/access_rights_helper.rb +54 -0
- data/lib/groupdocs/api/helpers/byte_flag_helper.rb +49 -0
- data/lib/groupdocs/api/helpers/credentials_helper.rb +0 -0
- data/lib/groupdocs/api/helpers/path_helper.rb +0 -0
- data/lib/groupdocs/api/helpers/rest_helper.rb +0 -0
- data/lib/groupdocs/api/helpers/status_helper.rb +0 -0
- data/lib/groupdocs/api/helpers/url_helper.rb +0 -0
- data/lib/groupdocs/api/helpers.rb +2 -1
- data/lib/groupdocs/api/request.rb +0 -0
- data/lib/groupdocs/api.rb +0 -0
- data/lib/groupdocs/datasource/field.rb +0 -0
- data/lib/groupdocs/datasource.rb +0 -0
- data/lib/groupdocs/document/annotation/reply.rb +0 -0
- data/lib/groupdocs/document/annotation/reviewer.rb +60 -0
- data/lib/groupdocs/document/annotation.rb +19 -44
- data/lib/groupdocs/document/change.rb +0 -0
- data/lib/groupdocs/document/field.rb +0 -0
- data/lib/groupdocs/document/metadata.rb +0 -0
- data/lib/groupdocs/document/rectangle.rb +0 -0
- data/lib/groupdocs/document/view.rb +0 -0
- data/lib/groupdocs/document.rb +129 -0
- data/lib/groupdocs/errors.rb +0 -0
- data/lib/groupdocs/job.rb +53 -1
- data/lib/groupdocs/questionnaire/execution.rb +0 -0
- data/lib/groupdocs/questionnaire/page.rb +0 -0
- data/lib/groupdocs/questionnaire/question/answer.rb +0 -0
- data/lib/groupdocs/questionnaire/question.rb +0 -0
- data/lib/groupdocs/questionnaire.rb +0 -0
- data/lib/groupdocs/signature/contact.rb +0 -0
- data/lib/groupdocs/signature/envelope/log.rb +0 -0
- data/lib/groupdocs/signature/envelope.rb +0 -0
- data/lib/groupdocs/signature/field/location.rb +0 -0
- data/lib/groupdocs/signature/field.rb +0 -0
- data/lib/groupdocs/signature/form.rb +0 -0
- data/lib/groupdocs/signature/list.rb +0 -0
- data/lib/groupdocs/signature/recipient.rb +0 -0
- data/lib/groupdocs/signature/role.rb +0 -0
- data/lib/groupdocs/signature/shared/document_methods.rb +0 -0
- data/lib/groupdocs/signature/shared/entity_fields.rb +0 -0
- data/lib/groupdocs/signature/shared/entity_methods.rb +0 -0
- data/lib/groupdocs/signature/shared/field_methods.rb +0 -0
- data/lib/groupdocs/signature/shared/recipient_methods.rb +0 -0
- data/lib/groupdocs/signature/shared/resource_methods.rb +0 -0
- data/lib/groupdocs/signature/shared.rb +0 -0
- data/lib/groupdocs/signature/template.rb +0 -0
- data/lib/groupdocs/signature.rb +0 -0
- data/lib/groupdocs/storage/file.rb +0 -0
- data/lib/groupdocs/storage/folder.rb +0 -0
- data/lib/groupdocs/storage/package.rb +0 -0
- data/lib/groupdocs/storage.rb +0 -0
- data/lib/groupdocs/subscription/limit.rb +0 -0
- data/lib/groupdocs/subscription.rb +0 -0
- data/lib/groupdocs/user.rb +31 -4
- data/lib/groupdocs/version.rb +1 -1
- data/lib/groupdocs.rb +0 -0
- data/spec/groupdocs/api/entity_spec.rb +0 -0
- data/spec/groupdocs/api/helpers/access_mode_helper_spec.rb +0 -1
- data/spec/groupdocs/api/helpers/access_rights_helper_spec.rb +43 -0
- data/spec/groupdocs/api/helpers/byte_flag_helper_spec.rb +23 -0
- data/spec/groupdocs/api/helpers/credentials_helpers_spec.rb +0 -0
- data/spec/groupdocs/api/helpers/path_helper_spec.rb +0 -0
- data/spec/groupdocs/api/helpers/rest_helper_spec.rb +0 -0
- data/spec/groupdocs/api/helpers/status_helper_spec.rb +0 -0
- data/spec/groupdocs/api/helpers/url_helper_spec.rb +0 -0
- data/spec/groupdocs/api/request_spec.rb +0 -0
- data/spec/groupdocs/datasource/field_spec.rb +0 -0
- data/spec/groupdocs/datasource_spec.rb +0 -0
- data/spec/groupdocs/document/annotation/reply_spec.rb +0 -0
- data/spec/groupdocs/document/annotation/reviewer_spec.rb +57 -0
- data/spec/groupdocs/document/annotation_spec.rb +12 -44
- data/spec/groupdocs/document/change_spec.rb +0 -0
- data/spec/groupdocs/document/field_spec.rb +0 -0
- data/spec/groupdocs/document/metadata_spec.rb +0 -0
- data/spec/groupdocs/document/rectangle_spec.rb +0 -0
- data/spec/groupdocs/document/view_spec.rb +0 -0
- data/spec/groupdocs/document_spec.rb +138 -0
- data/spec/groupdocs/errors_spec.rb +0 -0
- data/spec/groupdocs/job_spec.rb +42 -0
- data/spec/groupdocs/questionnaire/execution_spec.rb +0 -0
- data/spec/groupdocs/questionnaire/page_spec.rb +0 -0
- data/spec/groupdocs/questionnaire/question/answer_spec.rb +0 -0
- data/spec/groupdocs/questionnaire/question_spec.rb +0 -0
- data/spec/groupdocs/questionnaire_spec.rb +0 -0
- data/spec/groupdocs/signature/contact_spec.rb +0 -0
- data/spec/groupdocs/signature/envelope/log_spec.rb +0 -0
- data/spec/groupdocs/signature/envelope_spec.rb +0 -0
- data/spec/groupdocs/signature/field/location_spec.rb +0 -0
- data/spec/groupdocs/signature/field_spec.rb +0 -0
- data/spec/groupdocs/signature/form_spec.rb +0 -0
- data/spec/groupdocs/signature/list_spec.rb +0 -0
- data/spec/groupdocs/signature/recipient_spec.rb +0 -0
- data/spec/groupdocs/signature/role_spec.rb +0 -0
- data/spec/groupdocs/signature/template_spec.rb +0 -0
- data/spec/groupdocs/signature_spec.rb +0 -0
- data/spec/groupdocs/storage/file_spec.rb +0 -0
- data/spec/groupdocs/storage/folder_spec.rb +0 -0
- data/spec/groupdocs/storage/package_spec.rb +0 -0
- data/spec/groupdocs/storage_spec.rb +0 -0
- data/spec/groupdocs/subscription/limit_spec.rb +0 -0
- data/spec/groupdocs/subscription_spec.rb +0 -0
- data/spec/groupdocs/user_spec.rb +62 -37
- data/spec/groupdocs_spec.rb +0 -0
- data/spec/spec_helper.rb +0 -0
- data/spec/support/files/envelope.zip +0 -0
- data/spec/support/files/resume.pdf +0 -0
- data/spec/support/json/annotation_access_set.json +0 -0
- data/spec/support/json/annotation_collaborators_get.json +0 -0
- data/spec/support/json/annotation_collaborators_set.json +0 -0
- data/spec/support/json/annotation_create.json +0 -0
- data/spec/support/json/annotation_list.json +0 -0
- data/spec/support/json/annotation_move.json +0 -0
- data/spec/support/json/annotation_remove.json +0 -0
- data/spec/support/json/annotation_replies_create.json +0 -0
- data/spec/support/json/annotation_replies_get.json +0 -0
- data/spec/support/json/annotation_reviewers_get.json +18 -0
- data/spec/support/json/comparison_changes.json +0 -0
- data/spec/support/json/comparison_compare.json +0 -0
- data/spec/support/json/comparison_document.json +0 -0
- data/spec/support/json/contact_add.json +0 -0
- data/spec/support/json/contacts_get.json +0 -0
- data/spec/support/json/contacts_import.json +0 -0
- data/spec/support/json/datasource_add.json +0 -0
- data/spec/support/json/datasource_get.json +0 -0
- data/spec/support/json/datasource_remove.json +0 -0
- data/spec/support/json/datasource_update.json +0 -0
- data/spec/support/json/document_access_info_get.json +0 -0
- data/spec/support/json/document_convert.json +0 -0
- data/spec/support/json/document_datasource.json +0 -0
- data/spec/support/json/document_fields.json +0 -0
- data/spec/support/json/document_formats.json +0 -0
- data/spec/support/json/document_metadata.json +0 -0
- data/spec/support/json/document_questionnaire_create.json +0 -0
- data/spec/support/json/document_questionnaires.json +0 -0
- data/spec/support/json/document_sharers_remove.json +0 -0
- data/spec/support/json/document_sharers_set.json +0 -0
- data/spec/support/json/document_views.json +0 -0
- data/spec/support/json/envelope_get.json +0 -0
- data/spec/support/json/envelope_logs.json +0 -0
- data/spec/support/json/envelopes_all.json +0 -0
- data/spec/support/json/envelopes_resources.json +0 -0
- data/spec/support/json/file_compress.json +0 -0
- data/spec/support/json/file_copy.json +0 -0
- data/spec/support/json/file_delete.json +0 -0
- data/spec/support/json/file_move.json +0 -0
- data/spec/support/json/file_upload.json +0 -0
- data/spec/support/json/folder_create.json +0 -0
- data/spec/support/json/folder_delete.json +0 -0
- data/spec/support/json/folder_list.json +0 -0
- data/spec/support/json/folder_move.json +0 -0
- data/spec/support/json/folder_sharers_get.json +0 -0
- data/spec/support/json/folder_sharers_remove.json +0 -0
- data/spec/support/json/folder_sharers_set.json +0 -0
- data/spec/support/json/form_get.json +0 -0
- data/spec/support/json/forms_all.json +0 -0
- data/spec/support/json/job_add_url.json +0 -0
- data/spec/support/json/job_create.json +0 -0
- data/spec/support/json/job_documents.json +0 -0
- data/spec/support/json/job_file_add.json +0 -0
- data/spec/support/json/job_get.json +0 -0
- data/spec/support/json/job_update.json +0 -0
- data/spec/support/json/jobs_get.json +0 -0
- data/spec/support/json/list_add.json +0 -0
- data/spec/support/json/lists_get.json +0 -0
- data/spec/support/json/package_create.json +0 -0
- data/spec/support/json/questionnaire_create.json +0 -0
- data/spec/support/json/questionnaire_datasources.json +0 -0
- data/spec/support/json/questionnaire_execution_create.json +0 -0
- data/spec/support/json/questionnaire_execution_status_set.json +0 -0
- data/spec/support/json/questionnaire_execution_update.json +0 -0
- data/spec/support/json/questionnaire_executions.json +0 -0
- data/spec/support/json/questionnaire_get.json +0 -0
- data/spec/support/json/questionnaire_remove.json +0 -0
- data/spec/support/json/questionnaire_update.json +0 -0
- data/spec/support/json/questionnaires_get.json +0 -0
- data/spec/support/json/signature_create.json +0 -0
- data/spec/support/json/signature_field_add.json +0 -0
- data/spec/support/json/signature_fields_get.json +0 -0
- data/spec/support/json/signature_roles_get.json +0 -0
- data/spec/support/json/signatures_get.json +0 -0
- data/spec/support/json/storage_info.json +0 -0
- data/spec/support/json/subscription_plan_get.json +0 -0
- data/spec/support/json/subscription_plans_get.json +0 -0
- data/spec/support/json/template_get.json +0 -0
- data/spec/support/json/template_get_documents.json +0 -0
- data/spec/support/json/template_get_recipients.json +0 -0
- data/spec/support/json/templates_all.json +0 -0
- data/spec/support/json/user_profile_get.json +0 -0
- data/spec/support/json/user_users_get.json +0 -0
- data/spec/support/shared_examples/api/entity.rb +0 -0
- data/spec/support/shared_examples/api/helpers/access_mode_helper.rb +0 -0
- data/spec/support/shared_examples/api/helpers/status_helper.rb +0 -0
- data/spec/support/shared_examples/signature/shared/document_methods.rb +0 -0
- data/spec/support/shared_examples/signature/shared/entity_fields.rb +0 -0
- data/spec/support/shared_examples/signature/shared/entity_methods.rb +0 -0
- data/spec/support/shared_examples/signature/shared/field_methods.rb +0 -0
- data/spec/support/shared_examples/signature/shared/recipient_methods.rb +0 -0
- data/spec/support/shared_examples/signature/shared/resource_methods.rb +0 -0
- metadata +72 -24
- data/lib/groupdocs/api/helpers/actions_helper.rb +0 -48
- data/spec/groupdocs/api/helpers/actions_helper_spec.rb +0 -37
data/.travis.yml
CHANGED
File without changes
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,25 @@
|
|
1
|
+
## v1.1
|
2
|
+
|
3
|
+
**New**
|
4
|
+
|
5
|
+
* Added `Annotation::Reviewer` class
|
6
|
+
* Added `Reviewer.all!`
|
7
|
+
* Added `Reviewer.set!`
|
8
|
+
* Added `Job#delete!`
|
9
|
+
* Added `Document#shared_link_access_rights!`
|
10
|
+
* Added `Document#set_shared_link_access_rights!`
|
11
|
+
* Added `Document#set_reviewers!`
|
12
|
+
* Added `Document#add_collaborotor!`
|
13
|
+
* More attributes for `User` class
|
14
|
+
* Added `Annotation#move_marker!`
|
15
|
+
* Added new `Job` action - `:compare`
|
16
|
+
|
17
|
+
**Changes**
|
18
|
+
|
19
|
+
* Moved `Annotation#collaborators!` and `Annotation#set_collaborators!` to `Document` class as it makes more sense
|
20
|
+
* `Document#set_collaborators!` now accepts options `version` parameter (default to `1`)
|
21
|
+
|
22
|
+
|
1
23
|
## v1.0
|
2
24
|
|
3
25
|
**New**
|
data/Gemfile
CHANGED
File without changes
|
data/README.md
CHANGED
@@ -23,7 +23,7 @@ Installing from source
|
|
23
23
|
|
24
24
|
All "bang" methods (ending with exclamation sign) imply interaction with API server.
|
25
25
|
|
26
|
-
Other methods (with expect to some
|
26
|
+
Other methods (with expect to some, see documentation) do not operate with API Server
|
27
27
|
|
28
28
|
### Configuration
|
29
29
|
|
@@ -53,7 +53,9 @@ GroupDocs::Storage::Folder.create!('/folder', client_id: 'your_client_id', priva
|
|
53
53
|
|
54
54
|
### Documentation
|
55
55
|
|
56
|
-
Reference to [this page](http://rubydoc.info/gems/groupdocs) for docs
|
56
|
+
Reference to [this page](http://rubydoc.info/gems/groupdocs) for docs and examples.
|
57
|
+
|
58
|
+
There are also some examples in [repository](https://github.com/groupdocs/groupdocs-ruby/tree/master/examples) and on [wiki](https://github.com/groupdocs/groupdocs-ruby/wiki)
|
57
59
|
|
58
60
|
### Entities
|
59
61
|
|
data/Rakefile
CHANGED
File without changes
|
data/examples/README.md
CHANGED
File without changes
|
File without changes
|
data/examples/annotations/app.rb
CHANGED
File without changes
|
data/groupdocs.gemspec
CHANGED
File without changes
|
data/lib/groupdocs/api/entity.rb
CHANGED
File without changes
|
File without changes
|
@@ -0,0 +1,54 @@
|
|
1
|
+
module GroupDocs
|
2
|
+
module Api
|
3
|
+
module Helpers
|
4
|
+
module AccessRights
|
5
|
+
|
6
|
+
include Api::Helpers::ByteFlag
|
7
|
+
|
8
|
+
ACCESS_RIGHTS = {
|
9
|
+
export: 1,
|
10
|
+
download: 2,
|
11
|
+
proof: 4,
|
12
|
+
view: 8,
|
13
|
+
}
|
14
|
+
|
15
|
+
private
|
16
|
+
|
17
|
+
#
|
18
|
+
# Converts shared link access rights array to byte flag.
|
19
|
+
#
|
20
|
+
# @param [Array<String, Symbol>] rights
|
21
|
+
# @return [Integer]
|
22
|
+
# @raise [ArgumentError] if rights is not an array
|
23
|
+
# @raise [ArgumentError] if right is unknown
|
24
|
+
# @api private
|
25
|
+
#
|
26
|
+
def convert_access_rights_to_byte(rights)
|
27
|
+
rights.is_a?(Array) or raise ArgumentError, "Rights should be an array, received: #{rights.inspect}"
|
28
|
+
rights = rights.map(&:to_sym)
|
29
|
+
|
30
|
+
possible_rights = ACCESS_RIGHTS.map { |hash| hash.first }
|
31
|
+
rights.each do |right|
|
32
|
+
possible_rights.include?(right) or raise ArgumentError, "Unknown access right: #{rights.inspect}"
|
33
|
+
end
|
34
|
+
|
35
|
+
byte_from_array(rights, ACCESS_RIGHTS)
|
36
|
+
end
|
37
|
+
|
38
|
+
#
|
39
|
+
# Converts byte flag to shared link access rights array.
|
40
|
+
#
|
41
|
+
# @param [Integer] rights
|
42
|
+
# @return [Array<Symbol>]
|
43
|
+
# @raise [ArgumentError] if rights is not integer
|
44
|
+
# @api private
|
45
|
+
#
|
46
|
+
def convert_byte_to_access_rights(rights)
|
47
|
+
rights.is_a?(Integer) or raise ArgumentError, "Rights should be an integer, received: #{rights.inspect}"
|
48
|
+
array_from_byte(rights, ACCESS_RIGHTS)
|
49
|
+
end
|
50
|
+
|
51
|
+
end # AccessRights
|
52
|
+
end # Helpers
|
53
|
+
end # Api
|
54
|
+
end # GroupDocs
|
@@ -0,0 +1,49 @@
|
|
1
|
+
module GroupDocs
|
2
|
+
module Api
|
3
|
+
module Helpers
|
4
|
+
module ByteFlag
|
5
|
+
|
6
|
+
#
|
7
|
+
# Converts array of values to byte flag using hash of value => byte.
|
8
|
+
#
|
9
|
+
# @param [Array<String, Symbol>] values
|
10
|
+
# @param [Hash] value_byte_hash
|
11
|
+
# @return [Integer]
|
12
|
+
# @raise [ArgumentError] if values is not an array
|
13
|
+
# @api private
|
14
|
+
#
|
15
|
+
def byte_from_array(values, value_byte_hash)
|
16
|
+
flag = 0
|
17
|
+
values.each do |value|
|
18
|
+
flag += value_byte_hash[value]
|
19
|
+
end
|
20
|
+
|
21
|
+
flag
|
22
|
+
end
|
23
|
+
|
24
|
+
#
|
25
|
+
# Converts byte flag to array of values using hash of value => byte.
|
26
|
+
#
|
27
|
+
# @param [Integer] byte
|
28
|
+
# @param [Hash] value_byte_hash
|
29
|
+
# @return [Integer]
|
30
|
+
# @api private
|
31
|
+
#
|
32
|
+
def array_from_byte(byte, value_byte_hash)
|
33
|
+
values = []
|
34
|
+
|
35
|
+
value_byte_hash.reverse_each do |value, flag|
|
36
|
+
decreased_byte = byte - flag
|
37
|
+
if decreased_byte >= 0
|
38
|
+
values << value
|
39
|
+
byte = decreased_byte
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
values
|
44
|
+
end
|
45
|
+
|
46
|
+
end # ByteFlag
|
47
|
+
end # Helpers
|
48
|
+
end # Api
|
49
|
+
end # GroupDocs
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
@@ -1,5 +1,6 @@
|
|
1
|
+
require 'groupdocs/api/helpers/byte_flag_helper'
|
1
2
|
require 'groupdocs/api/helpers/access_mode_helper'
|
2
|
-
require 'groupdocs/api/helpers/
|
3
|
+
require 'groupdocs/api/helpers/access_rights_helper'
|
3
4
|
require 'groupdocs/api/helpers/credentials_helper'
|
4
5
|
require 'groupdocs/api/helpers/path_helper'
|
5
6
|
require 'groupdocs/api/helpers/rest_helper'
|
File without changes
|
data/lib/groupdocs/api.rb
CHANGED
File without changes
|
File without changes
|
data/lib/groupdocs/datasource.rb
CHANGED
File without changes
|
File without changes
|
@@ -0,0 +1,60 @@
|
|
1
|
+
module GroupDocs
|
2
|
+
class Document::Annotation::Reviewer < Api::Entity
|
3
|
+
|
4
|
+
#
|
5
|
+
# Returns all reviewer contacts.
|
6
|
+
#
|
7
|
+
# @param [Hash] access Access credentials
|
8
|
+
# @option access [String] :client_id
|
9
|
+
# @option access [String] :private_key
|
10
|
+
# @return [Array<GroupDocs::Document::Annotation::Reviewer>]
|
11
|
+
#
|
12
|
+
def self.all!(access = {})
|
13
|
+
json = Api::Request.new do |request|
|
14
|
+
request[:access] = access
|
15
|
+
request[:method] = :GET
|
16
|
+
request[:path] = '/ant/{{client_id}}/contacts'
|
17
|
+
end.execute!
|
18
|
+
|
19
|
+
json[:reviewerContacts].map do |reviewer|
|
20
|
+
new(reviewer)
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
#
|
25
|
+
# Sets reviewer contacts to passed array.
|
26
|
+
#
|
27
|
+
# Please, note that it removes existing reviewer contacts.
|
28
|
+
#
|
29
|
+
# @example Add new reviewer contact
|
30
|
+
# reviewers = GroupDocs::Document::Annotation::Reviewer.all!
|
31
|
+
# reviewers << GroupDocs::Document::Annotation::Reviewer.new(full_name: 'John Smith', email_address: 'john@smith.com')
|
32
|
+
# GroupDocs::Document::Annotation::Reviewer.set! reviewers
|
33
|
+
#
|
34
|
+
# @param [Array<GroupDocs::Document::Annotation::Reviewer>] reviewers
|
35
|
+
# @param [Hash] access Access credentials
|
36
|
+
# @option access [String] :client_id
|
37
|
+
# @option access [String] :private_key
|
38
|
+
#
|
39
|
+
def self.set!(reviewers, access = {})
|
40
|
+
Api::Request.new do |request|
|
41
|
+
request[:access] = access
|
42
|
+
request[:method] = :PUT
|
43
|
+
request[:path] = '/ant/{{client_id}}/reviewerContacts'
|
44
|
+
request[:request_body] = reviewers.each.map(&:to_hash)
|
45
|
+
end.execute!
|
46
|
+
end
|
47
|
+
|
48
|
+
# @attr [String] emailAddress
|
49
|
+
attr_accessor :emailAddress
|
50
|
+
# @attr [String] FullName
|
51
|
+
attr_accessor :FullName
|
52
|
+
|
53
|
+
# Human-readable accessors
|
54
|
+
alias_method :email_address, :emailAddress
|
55
|
+
alias_method :email_address=, :emailAddress=
|
56
|
+
alias_method :full_name, :FullName
|
57
|
+
alias_method :full_name=, :FullName=
|
58
|
+
|
59
|
+
end # Document::Annotation::Reviewer
|
60
|
+
end # GroupDocs
|
@@ -2,6 +2,7 @@ module GroupDocs
|
|
2
2
|
class Document::Annotation < Api::Entity
|
3
3
|
|
4
4
|
require 'groupdocs/document/annotation/reply'
|
5
|
+
require 'groupdocs/document/annotation/reviewer'
|
5
6
|
|
6
7
|
include Api::Helpers::AccessMode
|
7
8
|
|
@@ -181,50 +182,6 @@ module GroupDocs
|
|
181
182
|
end
|
182
183
|
end
|
183
184
|
|
184
|
-
#
|
185
|
-
# Returns annotation collaborators.
|
186
|
-
#
|
187
|
-
# @param [Hash] access Access credentials
|
188
|
-
# @option access [String] :client_id
|
189
|
-
# @option access [String] :private_key
|
190
|
-
# @return [Array<GroupDocs::User>]
|
191
|
-
#
|
192
|
-
def collaborators!(access = {})
|
193
|
-
json = Api::Request.new do |request|
|
194
|
-
request[:access] = access
|
195
|
-
request[:method] = :GET
|
196
|
-
request[:path] = "/ant/{{client_id}}/files/#{document.file.guid}/collaborators"
|
197
|
-
end.execute!
|
198
|
-
|
199
|
-
json[:collaborators].map do |collaborator|
|
200
|
-
User.new(collaborator)
|
201
|
-
end
|
202
|
-
end
|
203
|
-
|
204
|
-
#
|
205
|
-
# Sets annotation collaborators to given emails.
|
206
|
-
#
|
207
|
-
# @param [Array] emails List of collaborators' email addresses
|
208
|
-
# @param [Hash] access Access credentials
|
209
|
-
# @option access [String] :client_id
|
210
|
-
# @option access [String] :private_key
|
211
|
-
# @return [Array<GroupDocs::User>]
|
212
|
-
#
|
213
|
-
def collaborators_set!(emails, access = {})
|
214
|
-
json = Api::Request.new do |request|
|
215
|
-
request[:access] = access
|
216
|
-
request[:method] = :PUT
|
217
|
-
request[:path] = "/ant/{{client_id}}/files/#{document.file.guid}/collaborators"
|
218
|
-
request[:request_body] = emails
|
219
|
-
end.execute!
|
220
|
-
|
221
|
-
json[:collaborators].map do |collaborator|
|
222
|
-
User.new(collaborator)
|
223
|
-
end
|
224
|
-
end
|
225
|
-
# note that aliased version cannot accept access credentials hash
|
226
|
-
alias_method :collaborators=, :collaborators_set!
|
227
|
-
|
228
185
|
#
|
229
186
|
# Removes annotation.
|
230
187
|
#
|
@@ -276,6 +233,24 @@ module GroupDocs
|
|
276
233
|
self.annotation_position = { x: x, y: y }
|
277
234
|
end
|
278
235
|
|
236
|
+
#
|
237
|
+
# Moves annotation marker to given coordinates.
|
238
|
+
#
|
239
|
+
# @param [Integer, Float] x
|
240
|
+
# @param [Integer, Float] y
|
241
|
+
# @param [Hash] access Access credentials
|
242
|
+
# @option access [String] :client_id
|
243
|
+
# @option access [String] :private_key
|
244
|
+
#
|
245
|
+
def move_marker!(x, y, access = {})
|
246
|
+
Api::Request.new do |request|
|
247
|
+
request[:access] = access
|
248
|
+
request[:method] = :PUT
|
249
|
+
request[:path] = "/ant/{{client_id}}/annotations/#{guid}/markerPosition"
|
250
|
+
request[:request_body] = { x: x, y: y }
|
251
|
+
end.execute!
|
252
|
+
end
|
253
|
+
|
279
254
|
#
|
280
255
|
# Sets access mode.
|
281
256
|
#
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
data/lib/groupdocs/document.rb
CHANGED
@@ -16,6 +16,7 @@ module GroupDocs
|
|
16
16
|
}
|
17
17
|
|
18
18
|
include Api::Helpers::AccessMode
|
19
|
+
include Api::Helpers::AccessRights
|
19
20
|
include Api::Helpers::Status
|
20
21
|
|
21
22
|
#
|
@@ -535,6 +536,134 @@ module GroupDocs
|
|
535
536
|
end
|
536
537
|
end
|
537
538
|
|
539
|
+
#
|
540
|
+
# Returns document annotations collaborators.
|
541
|
+
#
|
542
|
+
# @param [Hash] access Access credentials
|
543
|
+
# @option access [String] :client_id
|
544
|
+
# @option access [String] :private_key
|
545
|
+
# @return [Array<GroupDocs::User>]
|
546
|
+
#
|
547
|
+
def collaborators!(access = {})
|
548
|
+
json = Api::Request.new do |request|
|
549
|
+
request[:access] = access
|
550
|
+
request[:method] = :GET
|
551
|
+
request[:path] = "/ant/{{client_id}}/files/#{file.guid}/collaborators"
|
552
|
+
end.execute!
|
553
|
+
|
554
|
+
json[:collaborators].map do |collaborator|
|
555
|
+
User.new(collaborator)
|
556
|
+
end
|
557
|
+
end
|
558
|
+
|
559
|
+
#
|
560
|
+
# Sets document annotations collaborators to given emails.
|
561
|
+
#
|
562
|
+
# @param [Array<String>] emails List of collaborators' email addresses
|
563
|
+
# @param [Integer] version Annotation version
|
564
|
+
# @param [Hash] access Access credentials
|
565
|
+
# @option access [String] :client_id
|
566
|
+
# @option access [String] :private_key
|
567
|
+
# @return [Array<GroupDocs::User>]
|
568
|
+
#
|
569
|
+
def set_collaborators!(emails, version = 1, access = {})
|
570
|
+
json = Api::Request.new do |request|
|
571
|
+
request[:access] = access
|
572
|
+
request[:method] = :PUT
|
573
|
+
request[:path] = "/ant/{{client_id}}/files/#{file.guid}/version/#{version}/collaborators"
|
574
|
+
request[:request_body] = emails
|
575
|
+
end.execute!
|
576
|
+
|
577
|
+
json[:collaborators].map do |collaborator|
|
578
|
+
User.new(collaborator)
|
579
|
+
end
|
580
|
+
end
|
581
|
+
|
582
|
+
#
|
583
|
+
# Adds document annotations collaborator.
|
584
|
+
#
|
585
|
+
# @param [GroupDocs::User] collaborator
|
586
|
+
# @param [Hash] access Access credentials
|
587
|
+
# @option access [String] :client_id
|
588
|
+
# @option access [String] :private_key
|
589
|
+
#
|
590
|
+
def add_collaborator!(collaborator, access = {})
|
591
|
+
collaborator.is_a?(GroupDocs::User) or raise ArgumentError,
|
592
|
+
"Collaborator should be GroupDocs::User object, received: #{collaborator.inspect}"
|
593
|
+
|
594
|
+
Api::Request.new do |request|
|
595
|
+
request[:access] = access
|
596
|
+
request[:method] = :POST
|
597
|
+
request[:path] = "/ant/{{client_id}}/files/#{file.guid}/collaborators"
|
598
|
+
request[:request_body] = collaborator.to_hash
|
599
|
+
end.execute!
|
600
|
+
end
|
601
|
+
|
602
|
+
#
|
603
|
+
# Sets reviewers for document.
|
604
|
+
#
|
605
|
+
# @example Change reviewer rights
|
606
|
+
# reviewers = document.collaborators!
|
607
|
+
# reviewers.each do |reviewer|
|
608
|
+
# reviewer.access_rights = %w(view)
|
609
|
+
# end
|
610
|
+
# document.set_reviewers! reviewers
|
611
|
+
#
|
612
|
+
# @param [Array<GroupDocs::User>] reviewers
|
613
|
+
# @param [Hash] access Access credentials
|
614
|
+
# @option access [String] :client_id
|
615
|
+
# @option access [String] :private_key
|
616
|
+
# @return [Array<Symbol>]
|
617
|
+
#
|
618
|
+
def set_reviewers!(reviewers, access = {})
|
619
|
+
Api::Request.new do |request|
|
620
|
+
request[:access] = access
|
621
|
+
request[:method] = :PUT
|
622
|
+
request[:path] = "/ant/{{client_id}}/files/#{file.guid}/reviewerRights"
|
623
|
+
request[:request_body] = reviewers.map(&:to_hash)
|
624
|
+
end.execute!
|
625
|
+
end
|
626
|
+
|
627
|
+
#
|
628
|
+
# Returns an array of access rights for shared link.
|
629
|
+
#
|
630
|
+
# @param [Hash] access Access credentials
|
631
|
+
# @option access [String] :client_id
|
632
|
+
# @option access [String] :private_key
|
633
|
+
# @return [Array<Symbol>]
|
634
|
+
#
|
635
|
+
def shared_link_access_rights!(access = {})
|
636
|
+
json = Api::Request.new do |request|
|
637
|
+
request[:access] = access
|
638
|
+
request[:method] = :GET
|
639
|
+
request[:path] = "/ant/{{client_id}}/files/#{file.guid}/sharedLinkAccessRights"
|
640
|
+
end.execute!
|
641
|
+
|
642
|
+
if json[:accessRights]
|
643
|
+
convert_byte_to_access_rights json[:accessRights]
|
644
|
+
else
|
645
|
+
[]
|
646
|
+
end
|
647
|
+
end
|
648
|
+
|
649
|
+
#
|
650
|
+
# Sets access rights for shared link.
|
651
|
+
#
|
652
|
+
# @param [Array<Symbol>] rights
|
653
|
+
# @param [Hash] access Access credentials
|
654
|
+
# @option access [String] :client_id
|
655
|
+
# @option access [String] :private_key
|
656
|
+
# @return [Array<Symbol>]
|
657
|
+
#
|
658
|
+
def set_shared_link_access_rights!(rights, access = {})
|
659
|
+
json = Api::Request.new do |request|
|
660
|
+
request[:access] = access
|
661
|
+
request[:method] = :PUT
|
662
|
+
request[:path] = "/ant/{{client_id}}/files/#{file.guid}/sharedLinkAccessRights"
|
663
|
+
request[:request_body] = convert_access_rights_to_byte(rights)
|
664
|
+
end.execute!
|
665
|
+
end
|
666
|
+
|
538
667
|
#
|
539
668
|
# Pass all unknown methods to file.
|
540
669
|
#
|
data/lib/groupdocs/errors.rb
CHANGED
File without changes
|
data/lib/groupdocs/job.rb
CHANGED
@@ -1,7 +1,21 @@
|
|
1
1
|
module GroupDocs
|
2
2
|
class Job < Api::Entity
|
3
3
|
|
4
|
-
|
4
|
+
ACTIONS = {
|
5
|
+
none: 0,
|
6
|
+
convert: 1,
|
7
|
+
combine: 2,
|
8
|
+
compress_zip: 4,
|
9
|
+
compress_rar: 8,
|
10
|
+
trace: 16,
|
11
|
+
convert_body: 32,
|
12
|
+
bind_data: 64,
|
13
|
+
print: 128,
|
14
|
+
compare: 256,
|
15
|
+
import_annotations: 512,
|
16
|
+
}
|
17
|
+
|
18
|
+
extend Api::Helpers::ByteFlag
|
5
19
|
include Api::Helpers::Status
|
6
20
|
|
7
21
|
#
|
@@ -280,5 +294,43 @@ module GroupDocs
|
|
280
294
|
end.execute!
|
281
295
|
end
|
282
296
|
|
297
|
+
#
|
298
|
+
# Deletes draft job.
|
299
|
+
#
|
300
|
+
# @param [Hash] access Access credentials
|
301
|
+
# @option access [String] :client_id
|
302
|
+
# @option access [String] :private_key
|
303
|
+
#
|
304
|
+
def delete!(access = {})
|
305
|
+
Api::Request.new do |request|
|
306
|
+
request[:access] = access
|
307
|
+
request[:method] = :DELETE
|
308
|
+
request[:path] = "/async/{{client_id}}/jobs/#{id}"
|
309
|
+
end.execute!
|
310
|
+
end
|
311
|
+
|
312
|
+
private
|
313
|
+
|
314
|
+
#
|
315
|
+
# Converts actions array to byte flag.
|
316
|
+
#
|
317
|
+
# @param [Array<String, Symbol>] actions
|
318
|
+
# @return [Integer]
|
319
|
+
# @raise [ArgumentError] if actions is not an array
|
320
|
+
# @raise [ArgumentError] if action is unknown
|
321
|
+
# @api private
|
322
|
+
#
|
323
|
+
def self.convert_actions_to_byte(actions)
|
324
|
+
actions.is_a?(Array) or raise ArgumentError, "Actions should be an array, received: #{actions.inspect}"
|
325
|
+
actions = actions.map(&:to_sym)
|
326
|
+
|
327
|
+
possible_actions = ACTIONS.map { |hash| hash.first }
|
328
|
+
actions.each do |action|
|
329
|
+
possible_actions.include?(action) or raise ArgumentError, "Unknown action: #{action.inspect}"
|
330
|
+
end
|
331
|
+
|
332
|
+
byte_from_array(actions, ACTIONS)
|
333
|
+
end
|
334
|
+
|
283
335
|
end # Job
|
284
336
|
end # GroupDocs
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
data/lib/groupdocs/signature.rb
CHANGED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
data/lib/groupdocs/storage.rb
CHANGED
File without changes
|
File without changes
|
File without changes
|