class GroupDocs::DataSource
Attributes
@attr [Time] created_on
@attr [String] descr
@attr [Array<GroupDocs::DataSource::Field>] fields
@attr [Integer] id
@attr [Time] modified_on
@attr [Integer] questionnaire_id
Public Class Methods
Returns datasource by given identifier.
@param [Integer] id @param [Hash] options @option options [Array] :field Array of field names to be returned. All by default @param [Hash] access Access credentials @option access [String] :client_id @option access [String] :private_key @return [GroupDocs::DataSource, nil]
# File lib/groupdocs/datasource.rb, line 17 def self.get!(id, options = {}, access = {}) api = Api::Request.new do |request| request[:access] = access request[:method] = :GET request[:path] = "/merge/{{client_id}}/datasources/#{id}" end api.add_params(options) json = api.execute! DataSource.new(json[:datasource]) rescue RestClient::ResourceNotFound nil end
Public Instance Methods
Adds datasource.
@example
field = GroupDocs::DataSource::Field.new(name: 'test', values: %w(test test)) datasource = GroupDocs::DataSource.new datasource.add_field(field) datasource.add!
@param [Hash] access Access credentials @option access [String] :client_id @option access [String] :private_key
# File lib/groupdocs/datasource.rb, line 109 def add!(access = {}) json = Api::Request.new do |request| request[:access] = access request[:method] = :POST request[:path] = '/merge/{{client_id}}/datasources' request[:request_body] = to_hash end.execute! self.id = json[:datasource_id] end
Add job document datasource.
@example file = GroupDocs::Storage::File.new
(guid => “(file guid)”).to_document field = GroupDocs::DataSource::Field.new
(:name => “test”) datasource = GroupDocs::DataSource.new
datasource.add_field(field).add!() job = GroupDocs::Job.create!()
file_id = job.add_document!(file) datasource = add_datasourse!(job, file_id, datasource)
@param [GroupDocs::DataSource] datasource @param [String] jobId Job
identifier @param [String] fileId File identifier @param [String] datasourceId @param [Hash] access Access credentials @option access [String] :client_id @option access [String] :private_key
# File lib/groupdocs/datasource.rb, line 202 def add_datasource!(job, file_id, datasource, access = {}) datasource.is_a?(GroupDocs::DataSource) or raise ArgumentError, "Datasource should be GroupDocs::DataSource object, received: #{datasource.inspect}" Api::Request.new do |request| request[:access] = access request[:method] = :PUT request[:path] = "/merge/{{client_id}}/jobs/#{job.id}/files/#{file_id}/datasources/#{datasource.id}" end.execute! end
Add job document datasource fields.
@example file = GroupDocs::Storage::File.new
(guid => “(file guid)”).to_document field = GroupDocs::DataSource::Field.new
(:name => “test”) datasource = GroupDocs::DataSource.new
datasource.add_field(field) job = GroupDocs::Job.create!()
file_id = job.add_document!(file) datasource = add_datasourse!(job, file_id, datasource)
@param [String] jobId Job
identifier @param [String] fileId File identifier @param [Array] datasourceFields @param [Hash] access Access credentials @option access [String] :client_id @option access [String] :private_key
# File lib/groupdocs/datasource.rb, line 235 def add_datasource_fields!(job, file_id, datasource, access = {}) datasource.is_a?(GroupDocs::DataSource) or raise ArgumentError, "Datasource should be GroupDocs::DataSource object, received: #{datasource.inspect}" Api::Request.new do |request| request[:access] = access request[:method] = :PUT request[:path] = "/merge/{{client_id}}/jobs/#{job.id}/files/#{file_id}/datasources" request[:request_body] = datasource.fields end.execute! end
Adds field to datasource.
@param [GroupDocs::DataSource::Field] question @raise [ArgumentError] if field is not GroupDocs::DataSource::Field
object
# File lib/groupdocs/datasource.rb, line 88 def add_field(field) field.is_a?(GroupDocs::DataSource::Field) or raise ArgumentError, "Field should be GroupDocs::DataSource::Field object, received: #{field.inspect}" @fields ||= Array.new @fields << field end
Converts each field to GroupDocs::DataSource::Field
object.
@param [Array<GroupDocs::DataSource::Field, Hash>] fields
# File lib/groupdocs/datasource.rb, line 70 def fields=(fields) if fields @fields = fields.map do |field| if field.is_a?(GroupDocs::DataSource::Field) field else DataSource::Field.new(field) end end end end
Removes datasource.
@param [Hash] access Access credentials @option access [String] :client_id @option access [String] :private_key
# File lib/groupdocs/datasource.rb, line 171 def remove!(access = {}) Api::Request.new do |request| request[:access] = access request[:method] = :DELETE request[:path] = "/merge/{{client_id}}/datasources/#{id}" end.execute! # TODO: fix this in API - http://scotland.groupdocs.com/jira/browse/CORE-387 rescue RestClient::BadRequest nil end
Updates datasource.
@example
field = GroupDocs::DataSource::Field.new(field: 'test', values: %w(test test)) datasource = GroupDocs::DataSource.get!(180) datasource.add_field(field) datasource.update!
@param [Hash] access Access credentials @option access [String] :client_id @option access [String] :private_key
# File lib/groupdocs/datasource.rb, line 133 def update!(access = {}) Api::Request.new do |request| request[:access] = access request[:method] = :PUT request[:path] = "/merge/{{client_id}}/datasources/#{id}" request[:request_body] = to_hash end.execute! end
Updates datasource.
@example
field = GroupDocs::DataSource::Field.new(field: 'test', values: %w(test test)) datasource = GroupDocs::DataSource.get!(180) datasource.add_field(field) datasource.update_fields!
@param [Hash] access Access credentials @option access [String] :client_id @option access [String] :private_key
# File lib/groupdocs/datasource.rb, line 155 def update_fields!(access = {}) Api::Request.new do |request| request[:access] = access request[:method] = :PUT request[:path] = "/merge/{{client_id}}/datasources/#{id}/fields" request[:request_body] = to_hash end.execute! end