Class: CloudConvert::Resources::Tasks

Inherits:
CloudConvert::Resource show all
Defined in:
lib/cloudconvert/resources/tasks.rb

Instance Attribute Summary

Attributes inherited from CloudConvert::Resource

#client

Instance Method Summary collapse

Methods inherited from CloudConvert::Resource

#initialize

Constructor Details

This class inherits a constructor from CloudConvert::Resource

Instance Method Details

#all(params = {}) ⇒ Collection<Task>

Parameters:

  • params (Hash) (defaults to: {})

Returns:



6
7
8
# File 'lib/cloudconvert/resources/tasks.rb', line 6

def all(params = {})
  Task.collection(client.get("/v2/tasks", params))
end

#cancel(id) ⇒ Task

Parameters:

  • params (Hash)

Returns:



35
36
37
# File 'lib/cloudconvert/resources/tasks.rb', line 35

def cancel(id)
  Task.result(client.post("/v2/tasks/#{id}/cancel"))
end

#create(params = {}) ⇒ Task

Parameters:

  • operation (String)
  • params (Hash) (defaults to: {})

Returns:



20
21
22
23
24
25
26
27
28
29
30
31
# 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) ⇒ void

This method returns an undefined value.

Parameters:

  • id (String)


41
42
43
# File 'lib/cloudconvert/resources/tasks.rb', line 41

def delete(id)
  client.delete("/v2/tasks/#{id}")
end

#find(id, params = {}) ⇒ Task

Parameters:

  • id (String)
  • params (Hash) (defaults to: {})

Returns:



13
14
15
# File 'lib/cloudconvert/resources/tasks.rb', line 13

def find(id, params = {})
  Task.result(client.get("/v2/tasks/#{id}", params))
end

#retry(id) ⇒ Task

Parameters:

  • params (Hash)

Returns:



47
48
49
# File 'lib/cloudconvert/resources/tasks.rb', line 47

def retry(id)
  Task.result(client.post("/v2/tasks/#{id}/retry"))
end

#upload(file, task) ⇒ void

This method returns an undefined value.

Parameters:

  • file (File, String, IO)

    Either a String filename to a local file or an open IO object.

  • task (Task)

    The “import/upload” Task to upload the file to.



60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
# 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) ⇒ Task

Parameters:

  • id (String)

Returns:



53
54
55
# File 'lib/cloudconvert/resources/tasks.rb', line 53

def wait(id)
  Task.result(client.get(client.api_sync_host + "/v2/tasks/#{id}"))
end