Class: ReductoAI::Resources::Jobs
- Inherits:
-
Object
- Object
- ReductoAI::Resources::Jobs
- Defined in:
- lib/reducto_ai/resources/jobs.rb
Overview
Jobs resource for job management and file upload operations.
Provides methods to list, retrieve, cancel jobs, upload files, and configure webhooks for async job notifications.
Instance Method Summary collapse
-
#cancel(job_id:) ⇒ Hash
Cancels a running async job.
-
#configure_webhook ⇒ Hash
Configures webhook notifications for async jobs.
-
#initialize(client) ⇒ Jobs
constructor
private
A new instance of Jobs.
-
#list(**options) ⇒ Hash
Lists jobs with optional filtering.
-
#retrieve(job_id:) ⇒ Hash
Retrieves job status and results.
-
#upload(file:, extension: nil) ⇒ Hash
Uploads a local file to Reducto's storage.
-
#version ⇒ Hash
Returns API version information.
Constructor Details
#initialize(client) ⇒ Jobs
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Returns a new instance of Jobs.
28 29 30 |
# File 'lib/reducto_ai/resources/jobs.rb', line 28 def initialize(client) @client = client end |
Instance Method Details
#cancel(job_id:) ⇒ Hash
Cancels a running async job.
78 79 80 81 82 |
# File 'lib/reducto_ai/resources/jobs.rb', line 78 def cancel(job_id:) raise ArgumentError, "job_id is required" if job_id.nil? || job_id.to_s.strip.empty? @client.request(:post, "/cancel/#{job_id}") end |
#configure_webhook ⇒ Hash
Configures webhook notifications for async jobs.
158 159 160 |
# File 'lib/reducto_ai/resources/jobs.rb', line 158 def configure_webhook @client.request(:post, "/configure_webhook") end |
#list(**options) ⇒ Hash
Lists jobs with optional filtering.
60 61 62 63 |
# File 'lib/reducto_ai/resources/jobs.rb', line 60 def list(**) params = .compact @client.request(:get, "/jobs", params: params) end |
#retrieve(job_id:) ⇒ Hash
Retrieves job status and results.
Used to poll async jobs until completion. Completed jobs include full results in the response.
108 109 110 111 112 |
# File 'lib/reducto_ai/resources/jobs.rb', line 108 def retrieve(job_id:) raise ArgumentError, "job_id is required" if job_id.nil? || job_id.to_s.strip.empty? @client.request(:get, "/job/#{job_id}") end |
#upload(file:, extension: nil) ⇒ Hash
Uploads a local file to Reducto's storage.
Returns a URL that can be used as input for other API operations. Useful when processing local files instead of publicly accessible URLs.
139 140 141 142 143 144 145 146 147 148 |
# File 'lib/reducto_ai/resources/jobs.rb', line 139 def upload(file:, extension: nil) raise ArgumentError, "file is required" if file.nil? upload_io = build_upload_io(file) body = { file: upload_io } params = {} params[:extension] = extension unless extension.nil? @client.request(:post, "/upload", body: body, params: params) end |
#version ⇒ Hash
Returns API version information.
39 40 41 |
# File 'lib/reducto_ai/resources/jobs.rb', line 39 def version @client.request(:get, "/version") end |