lib/pybossa-api/task.rb
module PyBossa
module Task
class << self
# @param [Hash] opts optional arguments
# @option opts [Integer] :limit number of results to return [default 20]
# @option opts [String] :api_key an API key
# @return [Array] a list of tasks
def list(opts = {})
PyBossa::API.many 'task', opts
end
# @param [Integer] id a task ID
# @param [Hash] opts optional arguments
# @option opts [String] :api_key an API key
# @return [Hash] a task
def get(id, opts = {})
PyBossa::API.retrieve 'task', id, opts
end
# Creates a task.
#
# @param [Hash] opts optional arguments
# @option opts [Integer] :app_id the app ID to which this object belongs
# @option opts [String] :state one of:
# * "all": Default state
# * "in_progress": A user is running the task
# * "pending": The task is completed but requires validation
# * "valid": The task is completed and valid
# * "invalid": The task is completed and invalid
# * "error": The task has an error
# @option opts [Integer] :quorum number of users who should do this task [not in use]
# @option opts [Boolean] :calibration whether this is a calibration task [not in use]
# @option opts [Float] :priority_0 between 0 (low) and 1 (high) [not in use]
# @option opts [Hash] :info all other task details
# @option opts [String] :api_key an API key
# @return [Hash] a task
#
# @see https://github.com/PyBossa/pybossa/blob/master/pybossa/model.py#L214
def create(opts = {})
if opts.has_key? :calibration
opts[:calibration] = opts[:calibration] ? 1 : 0
end
PyBossa::API.create 'task', opts
end
# Updates a task.
#
# @param [Integer] id a task ID
#
# @see PyBossa::Task#create
def update(id, opts = {})
if opts.has_key? :calibration
opts[:calibration] = opts[:calibration] ? 1 : 0
end
PyBossa::API.update 'task', id, opts
end
# Deletes a task.
#
# @param [Integer] id a task ID
# @param [Hash] opts optional arguments
# @option opts [String] :api_key an API key
def delete(id, opts = {})
PyBossa::API.destroy 'task', id, opts
end
end
end
end