class CloudConvert::Resources::Tasks

Public Instance Methods

all(params = {}) click to toggle source

@param params [Hash] @return [Collection<Task>]

# File lib/cloudconvert/resources/tasks.rb, line 6
def all(params = {})
  Task.collection(client.get("/v2/tasks", params))
end
cancel(id) click to toggle source

@param params [Hash] @return [Task]

# File lib/cloudconvert/resources/tasks.rb, line 35
def cancel(id)
  Task.result(client.post("/v2/tasks/#{id}/cancel"))
end
create(params = {}) click to toggle source

@param operation [String] @param params [Hash] @return [Task]

# File lib/cloudconvert/resources/tasks.rb, line 20
def create(params = {})
  schema = Schemacop::Schema.new do
    type :hash, allow_obsolete_keys: true do
      req :operation, :string
      req :input, :string unless params[:operation].nil? || params[:operation].start_with?("import")
    end
  end

  schema.validate! params

  Task.result(client.post("/v2/#{params[:operation]}", params))
end
delete(id) click to toggle source

@param id [String] @return [void]

# File lib/cloudconvert/resources/tasks.rb, line 41
def delete(id)
  client.delete("/v2/tasks/#{id}")
end
find(id, params = {}) click to toggle source

@param id [String] @param params [Hash] @return [Task]

# File lib/cloudconvert/resources/tasks.rb, line 13
def find(id, params = {})
  Task.result(client.get("/v2/tasks/#{id}", params))
end
retry(id) click to toggle source

@param params [Hash] @return [Task]

# File lib/cloudconvert/resources/tasks.rb, line 47
def retry(id)
  Task.result(client.post("/v2/tasks/#{id}/retry"))
end
upload(file, task) click to toggle source

@param file [File, String, IO] Either a String filename to a local file or an open IO object. @param task [Task] The “import/upload” Task to upload the file to. @return [void]

# File lib/cloudconvert/resources/tasks.rb, line 60
def upload(file, task)
  unless task.operation == "import/upload"
    raise ArgumentError.new("The task operation is not import/upload")
  end

  unless task.result && task.result.form && task.waiting?
    raise ArgumentError.new("The task is not ready for uploading")
  end

  file = File.new(file) unless file.is_a? File

  client.post(task.result.form.url, task.result.form.parameters.to_h.merge(file: file)) do |request|
    request.headers.delete("Authorization")
    request.headers["Content-Type"] = "multipart/form-data"
  end

  nil
end
wait(id) click to toggle source

@param id [String] @return [Task]

# File lib/cloudconvert/resources/tasks.rb, line 53
def wait(id)
  Task.result(client.get(client.api_sync_host + "/v2/tasks/#{id}"))
end