Class: Basecamp3::TodoList

Inherits:
Model
  • Object
show all
Includes:
Concerns::Bucketable, Concerns::Commentable, Concerns::Creatorable, Concerns::Parentable, Concerns::Recordingable
Defined in:
lib/basecamp3/models/todo_list.rb

Overview

Constant Summary

REQUIRED_FIELDS =
%w(name)

Instance Attribute Summary collapse

Attributes included from Concerns::Commentable

#comments_count

Class Method Summary collapse

Instance Method Summary collapse

Methods included from Concerns::Commentable

#comments

Methods included from Concerns::Recordingable

included

Methods included from Concerns::Parentable

#parent

Methods included from Concerns::Bucketable

#bucket

Methods included from Concerns::Creatorable

#creator

Methods inherited from Model

#initialize

Constructor Details

This class inherits a constructor from Basecamp3::Model

Instance Attribute Details

#completedObject

Returns the value of attribute completed



11
12
13
# File 'lib/basecamp3/models/todo_list.rb', line 11

def completed
  @completed
end

#completed_ratioObject

Returns the value of attribute completed_ratio



11
12
13
# File 'lib/basecamp3/models/todo_list.rb', line 11

def completed_ratio
  @completed_ratio
end

#created_atObject

Returns the value of attribute created_at



11
12
13
# File 'lib/basecamp3/models/todo_list.rb', line 11

def created_at
  @created_at
end

#descriptionObject

Returns the value of attribute description



11
12
13
# File 'lib/basecamp3/models/todo_list.rb', line 11

def description
  @description
end

#idObject

Returns the value of attribute id



11
12
13
# File 'lib/basecamp3/models/todo_list.rb', line 11

def id
  @id
end

#nameObject

Returns the value of attribute name



11
12
13
# File 'lib/basecamp3/models/todo_list.rb', line 11

def name
  @name
end

#statusObject

Returns the value of attribute status



11
12
13
# File 'lib/basecamp3/models/todo_list.rb', line 11

def status
  @status
end

#updated_atObject

Returns the value of attribute updated_at



11
12
13
# File 'lib/basecamp3/models/todo_list.rb', line 11

def updated_at
  @updated_at
end

Class Method Details

.all(bucket_id, parent_id, params = {}) ⇒ Array<Basecamp3::TodoList>

Returns a paginated list of active TODO lists.

Parameters:

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

    additional parameters

Options Hash (params):

  • :status (String) — default: optional

    when set to archived or trashed, will return archived or trashed to-do lists that are in this to-do list

  • :page (Integer) — default: optional

    to paginate results

Returns:



36
37
38
# File 'lib/basecamp3/models/todo_list.rb', line 36

def self.all(bucket_id, parent_id, params = {})
  Basecamp3.request.get("/buckets/#{bucket_id}/todosets/#{parent_id}/todolists", params, Basecamp3::TodoList)
end

.create(bucket_id, parent_id, data) ⇒ Basecamp3::TodoList

Creates a TODO list.

Parameters:

  • bucket_id (Integer)

    the id of the bucket

  • parent_id (Integer)

    the id of the TODO set

  • data (Hash)

    the data to create a TODO list with

  • params (Hash)

    a customizable set of options

Returns:



59
60
61
62
# File 'lib/basecamp3/models/todo_list.rb', line 59

def self.create(bucket_id, parent_id, data)
  self.validate_required(data)
  Basecamp3.request.post("/buckets/#{bucket_id}/todosets/#{parent_id}/todolists", data, Basecamp3::TodoList)
end

.find(bucket_id, id) ⇒ Basecamp3::TodoList

Returns the TODO list.

Parameters:

  • bucket_id (Integer)

    the id of the bucket

  • id (Integer)

    the id of the TODO list

Returns:



46
47
48
# File 'lib/basecamp3/models/todo_list.rb', line 46

def self.find(bucket_id, id)
  Basecamp3.request.get("/buckets/#{bucket_id}/todolists/#{id}", {}, Basecamp3::TodoList)
end

.update(bucket_id, id, data) ⇒ Basecamp3::TodoList

Updates the TODO list.

Parameters:

  • bucket_id (Integer)

    the id of the bucket

  • id (Integer)

    the id of the TODO list

  • data (Hash)

    the data to create the TODO list with

  • params (Hash)

    a customizable set of options

Returns:



73
74
75
76
# File 'lib/basecamp3/models/todo_list.rb', line 73

def self.update(bucket_id, id, data)
  self.validate_required(data)
  Basecamp3.request.put("/buckets/#{bucket_id}/todolists/#{id}", data, Basecamp3::TodoList)
end

Instance Method Details

#todosArray<Basecamp3::Todo>

Returns a list of related todos.

Returns:



25
26
27
# File 'lib/basecamp3/models/todo_list.rb', line 25

def todos
  @mapped_todos ||= Basecamp3::Todo.all(bucket.id, id)
end