Class: GroupDocs::DataSource

Inherits:
Api::Entity show all
Defined in:
lib/groupdocs/datasource.rb

Defined Under Namespace

Classes: Field

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Api::Entity

#initialize, #inspect, #to_hash

Methods included from Api::Helpers::Accessor

#alias_accessor

Constructor Details

This class inherits a constructor from GroupDocs::Api::Entity

Instance Attribute Details

#created_onTime

Converts timestamp which is return by API server to Time object.

Returns:

  • (Time)


38
39
40
# File 'lib/groupdocs/datasource.rb', line 38

def created_on
  @created_on
end

#descrObject



34
35
36
# File 'lib/groupdocs/datasource.rb', line 34

def descr
  @descr
end

#fieldsObject



42
43
44
# File 'lib/groupdocs/datasource.rb', line 42

def fields
  @fields
end

#idObject



32
33
34
# File 'lib/groupdocs/datasource.rb', line 32

def id
  @id
end

#modified_onTime

Converts timestamp which is return by API server to Time object.

Returns:

  • (Time)


40
41
42
# File 'lib/groupdocs/datasource.rb', line 40

def modified_on
  @modified_on
end

#questionnaire_idObject



36
37
38
# File 'lib/groupdocs/datasource.rb', line 36

def questionnaire_id
  @questionnaire_id
end

Class Method Details

.get!(id, options = {}, access = {}) ⇒ GroupDocs::DataSource?

Returns datasource by given identifier.

Parameters:

  • id (Integer)
  • options (Hash) (defaults to: {})
  • access (Hash) (defaults to: {})

    Access credentials

Options Hash (options):

  • :field (Array)

    Array of field names to be returned. All by default

Options Hash (access):

  • :client_id (String)
  • :private_key (String)

Returns:



17
18
19
20
21
22
23
24
25
26
27
28
29
# 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

Instance Method Details

#add!(access = {}) ⇒ Object

Adds datasource.

Examples:

field = GroupDocs::DataSource::Field.new(name: 'test', values: %w(test test))
datasource = GroupDocs::DataSource.new
datasource.add_field(field)
datasource.add!

Parameters:

  • access (Hash) (defaults to: {})

    Access credentials

Options Hash (access):

  • :client_id (String)
  • :private_key (String)


109
110
111
112
113
114
115
116
117
118
# 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 = {}) ⇒ Object

Add job document datasource.

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)

Parameters:

  • datasource (GroupDocs::DataSource)
  • jobId (String)

    Job identifier

  • fileId (String)

    File identifier

  • datasourceId (String)
  • access (Hash) (defaults to: {})

    Access credentials

Options Hash (access):

  • :client_id (String)
  • :private_key (String)


202
203
204
205
206
207
208
209
210
211
# 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 = {}) ⇒ Object

Add job document datasource fields.

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)

Parameters:

  • jobId (String)

    Job identifier

  • fileId (String)

    File identifier

  • datasourceFields (Array)
  • access (Hash) (defaults to: {})

    Access credentials

Options Hash (access):

  • :client_id (String)
  • :private_key (String)


235
236
237
238
239
240
241
242
243
244
# 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) ⇒ Object

Adds field to datasource.

Parameters:

Raises:

  • (ArgumentError)

    if field is not GroupDocs::DataSource::Field object



88
89
90
91
92
93
94
# 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

#remove!(access = {}) ⇒ Object

Removes datasource.

Parameters:

  • access (Hash) (defaults to: {})

    Access credentials

Options Hash (access):

  • :client_id (String)
  • :private_key (String)


171
172
173
174
175
176
177
178
179
180
# 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 = {}) ⇒ Object

Updates datasource.

Examples:

field = GroupDocs::DataSource::Field.new(field: 'test', values: %w(test test))
datasource = GroupDocs::DataSource.get!(180)
datasource.add_field(field)
datasource.update!

Parameters:

  • access (Hash) (defaults to: {})

    Access credentials

Options Hash (access):

  • :client_id (String)
  • :private_key (String)


133
134
135
136
137
138
139
140
# 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 = {}) ⇒ Object

Updates datasource.

Examples:

field = GroupDocs::DataSource::Field.new(field: 'test', values: %w(test test))
datasource = GroupDocs::DataSource.get!(180)
datasource.add_field(field)
datasource.update_fields!

Parameters:

  • access (Hash) (defaults to: {})

    Access credentials

Options Hash (access):

  • :client_id (String)
  • :private_key (String)


155
156
157
158
159
160
161
162
# 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