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
Instance Attribute Summary collapse
-
#actions ⇒ Array<Symbol>
Returns job actions in human-readable format.
- #documents ⇒ Object
- #email_results ⇒ Object
- #guid ⇒ Object
- #id ⇒ Object
- #name ⇒ Object
- #priority ⇒ Object
-
#requested_time ⇒ Time
Converts timestamp which is return by API server to Time object.
-
#status ⇒ Symbol
Converts status to human-readable format.
- #url_only ⇒ Object
Class Method Summary collapse
-
.all!(options = {}, access = {}) ⇒ Array<GroupDocs::Job>
Returns array of jobs.
-
.create!(options, access = {}) ⇒ GroupDocs::Job
Creates new draft job.
-
.get!(id, access = {}) ⇒ GroupDocs::Job
Returns job by its identifier.
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.
-
#delete_document!(guid, access = {}) ⇒ Object
Deletes document with guid from job.
-
#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
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.
89 90 91 |
# File 'lib/groupdocs/job.rb', line 89 def actions @actions end |
#documents ⇒ Object
95 96 97 |
# File 'lib/groupdocs/job.rb', line 95 def documents @documents end |
#email_results ⇒ Object
91 92 93 |
# File 'lib/groupdocs/job.rb', line 91 def email_results @email_results end |
#guid ⇒ Object
83 84 85 |
# File 'lib/groupdocs/job.rb', line 83 def guid @guid end |
#id ⇒ Object
81 82 83 |
# File 'lib/groupdocs/job.rb', line 81 def id @id end |
#name ⇒ Object
85 86 87 |
# File 'lib/groupdocs/job.rb', line 85 def name @name end |
#priority ⇒ Object
87 88 89 |
# File 'lib/groupdocs/job.rb', line 87 def priority @priority end |
#requested_time ⇒ Time
Converts timestamp which is return by API server to Time object.
97 98 99 |
# File 'lib/groupdocs/job.rb', line 97 def requested_time @requested_time end |
#status ⇒ Symbol
Converts status to human-readable format.
99 100 101 |
# File 'lib/groupdocs/job.rb', line 99 def status @status end |
#url_only ⇒ Object
93 94 95 |
# File 'lib/groupdocs/job.rb', line 93 def url_only @url_only end |
Class Method Details
.all!(options = {}, access = {}) ⇒ Array<GroupDocs::Job>
Returns array of 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.
64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 |
# File 'lib/groupdocs/job.rb', line 64 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], guid: json[:job_guid]) end |
.get!(id, access = {}) ⇒ GroupDocs::Job
Returns job by its identifier.
41 42 43 44 45 46 47 48 49 |
# File 'lib/groupdocs/job.rb', line 41 def self.get!(id, access = {}) json = Api::Request.new do |request| request[:access] = access request[:method] = :GET request[:path] = "/async/{{client_id}}/jobs/#{id}" end.execute! Job.new(json) end |
Instance Method Details
#add_datasource!(document, datasource, access = {}) ⇒ Object
Adds datasource to job document.
224 225 226 227 228 229 230 231 232 233 234 235 |
# File 'lib/groupdocs/job.rb', line 224 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.
181 182 183 184 185 186 187 188 189 190 191 192 193 194 |
# File 'lib/groupdocs/job.rb', line 181 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.
248 249 250 251 252 253 254 255 256 257 258 259 260 |
# File 'lib/groupdocs/job.rb', line 248 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 |
#delete_document!(guid, access = {}) ⇒ Object
Deletes document with guid from job.
204 205 206 207 208 209 210 |
# File 'lib/groupdocs/job.rb', line 204 def delete_document!(guid, access = {}) Api::Request.new do |request| request[:access] = access request[:method] = :DELETE request[:path] = "/async/{{client_id}}/jobs/#{id}/documents/#{guid}" end.execute! end |
#documents!(access = {}) ⇒ Array<GroupDocs::Document>
Returns an array of documents associated to job.
150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 |
# File 'lib/groupdocs/job.rb', line 150 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] if json[:inputs] json[:inputs].map do |document| document.merge!(file: GroupDocs::Storage::File.new(document)) Document.new(document) end else [] end end |
#update!(options, access = {}) ⇒ Object
Updates job settings and/or status.
272 273 274 275 276 277 278 279 280 281 |
# File 'lib/groupdocs/job.rb', line 272 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 |