class GroupDocs::DataSource

Attributes

created_on[RW]

@attr [Time] created_on

descr[RW]

@attr [String] descr

fields[RW]

@attr [Array<GroupDocs::DataSource::Field>] fields

id[RW]

@attr [Integer] id

modified_on[RW]

@attr [Time] modified_on

questionnaire_id[RW]

@attr [Integer] questionnaire_id

Public Class Methods

get!(id, options = {}, access = {}) click to toggle source

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

add!(access = {}) click to toggle source

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_datasource!(job, file_id, datasource, access = {}) click to toggle source

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_datasource_fields!(job, file_id, datasource, access = {}) click to toggle source

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
add_field(field) click to toggle source

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
fields=(fields) click to toggle source

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
remove!(access = {}) click to toggle source

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
update!(access = {}) click to toggle source

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
update_fields!(access = {}) click to toggle source

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