Class: GroupDocs::Job
- Inherits:
-
Api::Entity
- Object
- Api::Entity
- GroupDocs::Job
- 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
-
#actions ⇒ Array<Symbol>
Returns job actions in human-readable format.
- #documents ⇒ Object
- #email_results ⇒ Object
- #id ⇒ Object
-
#requested_time ⇒ Time
Converts timestamp which is return by API server to Time object.
- #url_only ⇒ Object
Attributes included from Api::Helpers::Status
Class Method Summary collapse
-
.all!(options = {}, access = {}) ⇒ Array<GroupDocs::Job>
Returns array of recent jobs.
-
.create!(options, access = {}) ⇒ GroupDocs::Job
Creates new draft job.
Instance Method Summary collapse
-
#add_datasource!(document, datasource, access = {}) ⇒ Object
Adds datasource to job document.
-
#add_document!(document, options = {}, access = {}) ⇒ Integer
Adds document to job.
-
#add_url!(url, options = {}, access = {}) ⇒ Integer
Adds URL of web page or document to be converted.
-
#documents!(access = {}) ⇒ Array<GroupDocs::Document>
Returns an array of documents associated to job.
-
#update!(options, access = {}) ⇒ Object
Updates job settings and/or status.
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
#actions ⇒ Array<Symbol>
Returns job actions in human-readable format.
64 65 66 |
# File 'lib/groupdocs/job.rb', line 64 def actions @actions end |
#documents ⇒ Object
70 71 72 |
# File 'lib/groupdocs/job.rb', line 70 def documents @documents end |
#email_results ⇒ Object
66 67 68 |
# File 'lib/groupdocs/job.rb', line 66 def email_results @email_results end |
#id ⇒ Object
62 63 64 |
# File 'lib/groupdocs/job.rb', line 62 def id @id end |
#requested_time ⇒ Time
Converts timestamp which is return by API server to Time object.
72 73 74 |
# File 'lib/groupdocs/job.rb', line 72 def requested_time @requested_time end |
#url_only ⇒ Object
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.
18 19 20 21 22 23 24 25 26 27 28 29 30 |
# File 'lib/groupdocs/job.rb', line 18 def self.all!( = {}, access = {}) api = Api::Request.new do |request| request[:access] = access request[:method] = :GET request[:path] = '/async/{{client_id}}/jobs' end api.add_params() json = api.execute! json[:jobs].map do |job| Job.new(job) end end |
.create!(options, access = {}) ⇒ GroupDocs::Job
Creates new draft job.
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!(, access = {}) [:actions] or raise ArgumentError, 'options[:actions] is required.' [:actions] = convert_actions_to_byte([:actions]) [:out_formats] = [:out_formats].join(?;) if [:out_formats] api = Api::Request.new do |request| request[:access] = access request[:method] = :POST request[:path] = '/async/{{client_id}}/jobs' request[:request_body] = end json = api.execute! Job.new(id: json[:job_id]) end |
Instance Method Details
#add_datasource!(document, datasource, access = {}) ⇒ Object
returns 404 (scotland.groupdocs.com/jira/browse/CORE-384)
Adds datasource to job document.
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.
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, = {}, 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() json = api.execute! json[:document_id] end |
#add_url!(url, options = {}, access = {}) ⇒ Integer
Adds URL of web page or document to be converted.
194 195 196 197 198 199 200 201 202 203 204 205 206 |
# File 'lib/groupdocs/job.rb', line 194 def add_url!(url, = {}, access = {}) .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() json = api.execute! json[:document_id] end |
#documents!(access = {}) ⇒ Array<GroupDocs::Document>
Returns an array of documents associated to job.
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.
218 219 220 221 222 223 224 225 226 227 |
# File 'lib/groupdocs/job.rb', line 218 def update!(, access = {}) [:status] = parse_status([:status]) if [:status] Api::Request.new do |request| request[:access] = access request[:method] = :PUT request[:path] = "/async/{{client_id}}/jobs/#{id}" request[:request_body] = end.execute! end |