lib/groupdocs/document.rb in groupdocs-1.5.7 vs lib/groupdocs/document.rb in groupdocs-1.5.8

- old
+ new

@@ -176,11 +176,10 @@ metadata.guid = json[:guid] metadata.page_count = json[:page_count] metadata.views_count = json[:views_count] if json[:last_view] metadata.last_view = json[:last_view] - end end end # @attr [GroupDocs::Storage::File] file @@ -588,11 +587,11 @@ # Returns array of URLs to images representing document pages htmlRepresentations. # # @example # file = GroupDocs::Storage::Folder.list!.last # document = file.to_document - # document.thumbnails! first_page: 0, page_count: 1, passwordSalt: *** + # document.representations! first_page: 0, page_count: 1, passwordSalt: *** # # @param [Hash] options # @option options [Integer] :page_number Start page to return image for (starting with 0) # @option options [Integer] :page_count Number of pages to return image for # @option options [Integer] :passwordSalt @@ -643,11 +642,11 @@ # def access_mode_set!(mode, access = {}) api = Api::Request.new do |request| request[:access] = access request[:method] = :PUT - request[:path] = "/doc/{{client_id}}/files/#{file.guid}/accessinfo" + request[:path] = "/doc/{{client_id}}/files/#{file.id}/accessinfo" end api.add_params(:mode => ACCESS_MODES[mode]) json = api.execute! parse_access_mode(json[:access]) @@ -1059,10 +1058,11 @@ [] end end # + # Changed in release 1.5.8 # Returns document details. # # @param [Hash] access Access credentials # @option access [String] :client_id # @option access [String] :private_key @@ -1070,17 +1070,18 @@ # def details!(access = {}) api = Api::Request.new do |request| request[:access] = access request[:method] = :GET - request[:path] = "/comparison/{{client_id}}/comparison/document" + request[:path] = "/comparison/{{client_id}}document" end api.add_params(:guid => file.guid) api.execute! end # + # Changed in release 1.5.8 # Schedules a job for comparing document with given. # # @param [GroupDocs::Document] document # @param [Hash] access Access credentials # @option access [String] :client_id @@ -1094,11 +1095,11 @@ "Document should be GroupDocs::Document object, received: #{document.inspect}" api = Api::Request.new do |request| request[:access] = access request[:method] = :GET - request[:path] = "/comparison/{{client_id}}/comparison/compare" + request[:path] = "/comparison/{{client_id}}/compare" end api.add_params(:source => file.guid, :target => document.file.guid, :callback => callback) json = api.execute! Job.new(:id => json[:job_id]) @@ -1122,22 +1123,22 @@ def update_changes!(changes, access = {}) api = Api::Request.new do |request| request[:access] = access request[:method] = :PUT - request[:path] = "/comparison/{{client_id}}/comparison/changes" + request[:path] = "/comparison/public/#{file.guid}/changes" request[:request_body] = changes end - api.add_params(:resultFileId => file.guid) json = api.execute! json[:changes].map do |change| Document::Change.new(change) end end # + # @Changed in realese 1.5.8 # Returns an array of changes in document. # # @example # document_one = GroupDocs::Storage::Folder.list![0].to_document # document_two = GroupDocs::Storage::Folder.list![1].to_document @@ -1152,41 +1153,53 @@ # def changes!(access = {}) api = Api::Request.new do |request| request[:access] = access request[:method] = :GET - request[:path] = '/comparison/{{client_id}}/comparison/changes' + request[:path] = '/comparison/public/#{file.guid}/changes' end - api.add_params(:resultFileId => file.guid) json = api.execute! json[:changes].map do |change| Document::Change.new(change) end end # + # Changed in realese 1.5.8 # Download comparison result file. # + # @example + # document_one = GroupDocs::Storage::Folder.list![0].to_document + # document_two = GroupDocs::Storage::Folder.list![1].to_document + # job = document_one.compare!(document_two) + # sleep(5) # wait for server to finish comparing + # result = job.documents![:outputs].first + # result.download!("#{File.dirname(__FILE__)}", {:format => 'pdf'}) + # # @param [Hash] options - # @option format [String] :format Comparison result file GUID - # @option resultFileId [String] :resultFileId Comparison result file GUID + # @option format [String] :format Comparison result file GUID # # @param [Hash] access Access credentials # @option access [String] :client_id # @option access [String] :private_key # # def download!( path, options = {}, access = {}) api = Api::Request.new do |request| request[:access] = access request[:method] = :DOWNLOAD - request[:path] = "/comparison/{{client_id}}/comparison/download" + request[:path] = "/comparison/public/#{file.guid}/download" end api.add_params(options) response = api.execute! - filepath = "#{path}/#{file.name}" + if file.name.split('.').last != options[:format] + file_name = file.name.delete!(file.name.split('.').last) + options[:format] + else + file_name = file.name + end + filepath = "#{path}/#{file_name}" Object::File.open(filepath, 'wb') do |file| file.write(response) end end @@ -1355,15 +1368,90 @@ # # Pass all unknown methods to file. # + def method_missing(method, *args, &blk) file.respond_to?(method) ? file.send(method, *args, &blk) : super end def respond_to?(method) super or file.respond_to?(method) + end + + + # + # added in release 1.5.8 + # + # Returns document hyperlinks + # + # @param [Hash] access Access credentials + # @option access [String] :client_id + # @option access [String] :private_key + # + def hyperlinks!(access = {}) + json = Api::Request.new do |request| + request[:access] = access + request[:method] = :GET + request[:path] = "/doc/{{client_id}}/files/#{file.guid}/hyperlinks" + end.execute! + + json[:links] + end + + # + # Changed in release 1.5.8 + # + # + # Public Sign document + # + # @param [String] document Document GUID + # @param [Hash] settings Settings of the signing document + # @param settings [String] waterMarkText + # @param settings [String] waterMarkImage + # @param settings [String] name (required) + # @param settings [Double] top (required) + # @param settings [Double] left (required) + # @param settings [Double] width (required) + # @param settings [Double] height (required) + # @param settings [String] placeSignatureOn (required) + # @param settings [String] data + # @param [Hash] access Access credentials + # @option access [String] :client_id + # @option access [String] :private_key + # @return [Array] + # + def public_sign_document!(options = {}, access = {}) + json = Api::Request.new do |request| + request[:access] = access + request[:method] = :POST + request[:path] = "/signature/public/documents/#{file.guid}/sign" + request[:request_body] = options + end.execute! + + json[:jobId] + end + + # + # Changed in release 1.5.8 + # + # + # Get document fields + # + # @param [String] document Document GUID + # @param [Hash] settings Settings of the signing document + # @param [Hash] access Access credentials + # @option access [String] :client_id + # @option access [String] :private_key + # @return [Array] + # + def self.public_fields!(access = {}) + Api::Request.new do |request| + request[:access] = access + request[:method] = :GET + request[:path] = "/signature/public/documents/#{file.guid}/fields" + end.execute! end end # Document end # GroupDocs