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
- #id ⇒ 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 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
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 |
#status ⇒ Symbol
Converts status to human-readable format.
74 75 76 |
# File 'lib/groupdocs/job.rb', line 74 def status @status 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.
181 182 183 184 185 186 187 188 189 190 191 192 |
# File 'lib/groupdocs/job.rb', line 181 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.
152 153 154 155 156 157 158 159 160 161 162 163 164 165 |
# File 'lib/groupdocs/job.rb', line 152 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.
205 206 207 208 209 210 211 212 213 214 215 216 217 |
# File 'lib/groupdocs/job.rb', line 205 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.
125 126 127 128 129 130 131 132 133 134 135 136 137 |
# File 'lib/groupdocs/job.rb', line 125 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.
229 230 231 232 233 234 235 236 237 238 |
# File 'lib/groupdocs/job.rb', line 229 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 |