lib/groupdocs/document.rb in groupdocs-1.6.0 vs lib/groupdocs/document.rb in groupdocs-1.7.0

- old
+ new

@@ -5,10 +5,12 @@ require 'groupdocs/document/change' require 'groupdocs/document/field' require 'groupdocs/document/metadata' require 'groupdocs/document/rectangle' require 'groupdocs/document/view' + require 'groupdocs/document/editor' + require 'groupdocs/document/style' ACCESS_MODES = { :private => 0, :restricted => 1, :public => 2, @@ -47,22 +49,26 @@ end # # Returns an array of all templates (documents in "Templates" directory). # + # @param [Hash] options Options + # @option options [String] :orderBy Order by column + # @option options [Boolean] :isAscending Order by ascending or descending # @param [Hash] access Access credentials # @option access [String] :client_id # @option access [String] :private_key # @return [Array<GroupDocs::Document>] # def self.templates!(options = {}, access = {}) - json = Api::Request.new do |request| + api = Api::Request.new do |request| request[:access] = access request[:method] = :GET request[:path] = '/merge/{{client_id}}/templates' - end.execute! - + end + api.add_params(options) + json = api.execute! json[:templates].map do |template| template.merge!(:file => Storage::File.new(template)) Document.new(template) end end @@ -197,11 +203,11 @@ # @attr [Integer] field_count attr_accessor :field_count #added in release 1.6.0 # @attr [String] fieldType - attr_accessor :fileType + attr_accessor :fieldType # @attr [Int] dependent_questionnaires_count attr_accessor :dependent_questionnaires_count # @attr [Long] upload_time attr_accessor :upload_time @@ -1458,9 +1464,65 @@ Api::Request.new do |request| request[:access] = access request[:method] = :GET request[:path] = "/signature/public/documents/#{file.guid}/fields" end.execute! + end + + # added in release 1.7.0 + # + # Get template fields. + # + # @param [Hash] access Access credentials + # @option access [String] :client_id + # @option access [String] :private_key + # + def editor_fields!(access = {}) + json = Api::Request.new do |request| + request[:access] = access + request[:method] = :GET + request[:path] = "/doc/{{client_id}}/files/#{file.guid}/editor_fields" + end.execute! + json[:fields].map do |field| + TemplateEditorFields.new(field) + end + end + + # added in release 1.7.0 + # + # Create questionnaire template from file. + # + # @example + # + # file = GroupDocs::Storage::File.new({:guid => '3be4e06494caed131d912c75e17d5f22592e3044032e0f81b35f13a8c9fefb49'}).to_document + # field = GroupDocs::Document::TemplateEditorFields.new + # field.name = 'test' + # field.fieldtype = 'TextBox' + # field.page = 1 + # file.questionnaire_template!([field] ) + # + # + # @param List[GroupDocs::Document::TemplateEditorFields] fields + # @param [Hash] access Access credentials + # @option access [String] :client_id + # @option access [String] :private_key + # + def questionnaire_template!(fields, access = {}) + + fields.each do |field| + field.is_a?(GroupDocs::Document::TemplateEditorFields) or raise ArgumentError, + "Fields should be List GroupDocs::Document::TemplateEditorFields objects, received: #{fields.inspect}" + end + + json = Api::Request.new do |request| + request[:access] = access + request[:method] = :POST + request[:path] = "/merge/{{client_id}}/files/#{file.guid}/templates" + request[:request_body] = fields + end.execute! + json[:templateFields].map do |field| + Document::Field.new(field) + end end end # Document end # GroupDocs