Class: GroupDocs::Job

Inherits:
Api::Entity show all
Extended by:
Api::Helpers::Actions
Includes:
Api::Helpers::Status
Defined in:
lib/groupdocs/job.rb

Constant Summary

Constants included from Api::Helpers::Actions

Api::Helpers::Actions::ACTIONS

Constants included from Api::Helpers::Status

Api::Helpers::Status::STATUSES

Instance Attribute Summary collapse

Attributes included from Api::Helpers::Status

#status

Class Method Summary collapse

Instance Method Summary collapse

Methods included from Api::Helpers::Actions

convert_actions_to_byte, convert_byte_to_actions

Methods inherited from Api::Entity

#initialize, #inspect, #to_hash

Constructor Details

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

Instance Attribute Details

#actionsArray<Symbol>

Returns job actions in human-readable format.

Returns:

  • (Array<Symbol>)


64
65
66
# File 'lib/groupdocs/job.rb', line 64

def actions
  @actions
end

#documentsObject



70
71
72
# File 'lib/groupdocs/job.rb', line 70

def documents
  @documents
end

#email_resultsObject



66
67
68
# File 'lib/groupdocs/job.rb', line 66

def email_results
  @email_results
end

#idObject



62
63
64
# File 'lib/groupdocs/job.rb', line 62

def id
  @id
end

#requested_timeTime

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

Returns:

  • (Time)


72
73
74
# File 'lib/groupdocs/job.rb', line 72

def requested_time
  @requested_time
end

#url_onlyObject



68
69
70
# File 'lib/groupdocs/job.rb', line 68

def url_only
  @url_only
end

Class Method Details

.all!(options = {}, access = {}) ⇒ Array<GroupDocs::Job>

Returns array of recent jobs.

Parameters:

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

    Hash of options

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

    Access credentials

Options Hash (options):

  • :page (Integer)

    Page to start with

  • :count (Integer)

    How many items to list

Options Hash (access):

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

Returns:



18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/groupdocs/job.rb', line 18

def self.all!(options = {}, access = {})
  api = Api::Request.new do |request|
    request[:access] = access
    request[:method] = :GET
    request[:path] = '/async/{{client_id}}/jobs'
  end
  api.add_params(options)
  json = api.execute!

  json[:jobs].map do |job|
    Job.new(job)
  end
end

.create!(options, access = {}) ⇒ GroupDocs::Job

Creates new draft job.

Parameters:

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

    Access credentials

Options Hash (options):

  • :actions (Integer)

    Array of actions to be performed. Required

  • :emails_results (Boolean)
  • :out_formats (Array)
  • :url_only (Boolean)

Options Hash (access):

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

Returns:



45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
# File 'lib/groupdocs/job.rb', line 45

def self.create!(options, access = {})
  options[:actions] or raise ArgumentError, 'options[:actions] is required.'
  options[:actions] = convert_actions_to_byte(options[:actions])
  options[:out_formats] = options[:out_formats].join(?;) if options[:out_formats]

  api = Api::Request.new do |request|
    request[:access] = access
    request[:method] = :POST
    request[:path] = '/async/{{client_id}}/jobs'
    request[:request_body] = options
  end
  json = api.execute!

  Job.new(id: json[:job_id])
end

Instance Method Details

#add_datasource!(document, datasource, access = {}) ⇒ Object

Adds datasource to job document.

Parameters:

Options Hash (access):

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

Raises:

  • (ArgumentError)

    If document is not a GroupDocs::Document object

  • (ArgumentError)

    If datasource is not a GroupDocs::DataSource object



170
171
172
173
174
175
176
177
178
179
180
181
# File 'lib/groupdocs/job.rb', line 170

def add_datasource!(document, datasource, access = {})
  document.is_a?(GroupDocs::Document) or raise ArgumentError,
    "Document should be GroupDocs::Document object. Received: #{document.inspect}"
  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] = "/async/{{client_id}}/jobs/#{id}/files/#{document.file.guid}/datasources/#{datasource.id}"
  end.execute!
end

#add_document!(document, options = {}, access = {}) ⇒ Integer

Adds document to job.

Parameters:

  • document (GroupDocs::Document)
  • options (Hash) (defaults to: {})
  • access (Hash) (defaults to: {})

    Access credentials

Options Hash (options):

  • :output_formats (Array)

    Array of output formats to override

Options Hash (access):

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

Returns:

  • (Integer)

    Document ID

Raises:

  • (ArgumentError)

    If document is not a GroupDocs::Document object



141
142
143
144
145
146
147
148
149
150
151
152
153
154
# File 'lib/groupdocs/job.rb', line 141

def add_document!(document, options = {}, access = {})
  document.is_a?(GroupDocs::Document) or raise ArgumentError,
    "Document should be GroupDocs::Document object. Received: #{document.inspect}"

  api = Api::Request.new do |request|
    request[:access] = access
    request[:method] = :PUT
    request[:path] = "/async/{{client_id}}/jobs/#{id}/files/#{document.file.guid}"
  end
  api.add_params(options)
  json = api.execute!

  json[:document_id]
end

#add_url!(url, options = {}, access = {}) ⇒ Integer

Adds URL of web page or document to be converted.

Parameters:

  • url (String)

    Absolute URL

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

    Access credentials

Options Hash (options):

  • :output_formats (Array)

    Array of output formats to override

Options Hash (access):

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

Returns:

  • (Integer)

    Document ID



194
195
196
197
198
199
200
201
202
203
204
205
206
# File 'lib/groupdocs/job.rb', line 194

def add_url!(url, options = {}, access = {})
  options.merge!(absolute_url: url)

  api = Api::Request.new do |request|
    request[:access] = access
    request[:method] = :PUT
    request[:path] = "/async/{{client_id}}/jobs/#{id}/urls"
  end
  api.add_params(options)
  json = api.execute!

  json[:document_id]
end

#documents!(access = {}) ⇒ Array<GroupDocs::Document>

Returns an array of documents associated to job.

Parameters:

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

    Access credentials

Options Hash (access):

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

Returns:



114
115
116
117
118
119
120
121
122
123
124
125
126
# File 'lib/groupdocs/job.rb', line 114

def documents!(access = {})
  json = Api::Request.new do |request|
    request[:access] = access
    request[:method] = :GET
    request[:path] = "/async/{{client_id}}/jobs/#{id}/documents"
  end.execute!

  self.status = json[:job_status]
  json[:inputs].map do |document|
    document.merge!(file: GroupDocs::Storage::File.new(document))
    Document.new(document)
  end
end

#update!(options, access = {}) ⇒ Object

Updates job settings and/or status.

Parameters:

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

    Access credentials

Options Hash (options):

  • :email_results (Boolean)
  • :status (Symbol)

Options Hash (access):

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


218
219
220
221
222
223
224
225
226
227
# File 'lib/groupdocs/job.rb', line 218

def update!(options, access = {})
  options[:status] = parse_status(options[:status]) if options[:status]

  Api::Request.new do |request|
    request[:access] = access
    request[:method] = :PUT
    request[:path] = "/async/{{client_id}}/jobs/#{id}"
    request[:request_body] = options
  end.execute!
end