Class: Asana::Resources::UserTaskList

Inherits:
UserTaskListsBase show all
Defined in:
lib/asana/resources/user_task_list.rb

Overview

A _user task list_ represents the tasks assigned to a particular user. It provides API access to a user's “My Tasks” view in Asana.

A user's “My Tasks” represent all of the tasks assigned to that user. It is visually divided into regions based on the task's [`assignee_status`](/developers/api-reference/tasks#field-assignee_status) for Asana users to triage their tasks based on when they can address them. When building an integration it's worth noting that tasks with due dates will automatically move through `assignee_status` states as their due dates approach; read up on [task auto-promotion](/guide/help/fundamentals/my-tasks#gl-auto-promote) for more infomation.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from UserTaskListsBase

get_user_task_list, get_user_task_list_for_user, inherited

Methods inherited from Resource

#initialize, #method_missing, #refresh, #respond_to_missing?, #to_h, #to_s

Methods included from ResponseHelper

#parse

Constructor Details

This class inherits a constructor from Asana::Resources::Resource

Dynamic Method Handling

This class handles dynamic methods through the method_missing method in the class Asana::Resources::Resource

Instance Attribute Details

#gidObject (readonly)


19
20
21
# File 'lib/asana/resources/user_task_list.rb', line 19

def gid
  @gid
end

#nameObject (readonly)


23
24
25
# File 'lib/asana/resources/user_task_list.rb', line 23

def name
  @name
end

#ownerObject (readonly)


25
26
27
# File 'lib/asana/resources/user_task_list.rb', line 25

def owner
  @owner
end

#resource_typeObject (readonly)


21
22
23
# File 'lib/asana/resources/user_task_list.rb', line 21

def resource_type
  @resource_type
end

#workspaceObject (readonly)


27
28
29
# File 'lib/asana/resources/user_task_list.rb', line 27

def workspace
  @workspace
end

Class Method Details

.find_by_id(client, id, options: {}) ⇒ Object

Returns the full record for a user task list.

Parameters:

  • id (Gid)

    Globally unique identifier for the user task list.

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

    the request I/O options.


54
55
56
57
# File 'lib/asana/resources/user_task_list.rb', line 54

def find_by_id(client, id, options: {})

  self.new(parse(client.get("/user_task_lists/#{id}", options: options)).first, client: client)
end

.find_by_user(client, user: required("user"), workspace: required("workspace"), options: {}) ⇒ Object

Returns the full record for the user task list for the given user

Parameters:

  • user (String) (defaults to: required("user"))

    An identifier for the user. Can be one of an email address,

  • the

    globally unique identifier for the user, or the keyword `me`

  • to

    indicate the current user making the request.

  • workspace (Gid) (defaults to: required("workspace"))

    Globally unique identifier for the workspace or organization.

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

    the request I/O options.


44
45
46
47
# File 'lib/asana/resources/user_task_list.rb', line 44

def find_by_user(client, user: required("user"), workspace: required("workspace"), options: {})
  params = { workspace: workspace }.reject { |_,v| v.nil? || Array(v).empty? }
  Resource.new(parse(client.get("/users/#{user}/user_task_list", params: params, options: options)).first, client: client)
end

.plural_nameObject

Returns the plural name of the resource.


31
32
33
# File 'lib/asana/resources/user_task_list.rb', line 31

def plural_name
  'user_task_lists'
end

Instance Method Details

#tasks(completed_since: nil, per_page: 20, options: {}) ⇒ Object

Returns the compact list of tasks in a user's My Tasks list. The returned tasks will be in order within each assignee status group of `Inbox`, `Today`, and `Upcoming`.

Note: tasks in `Later` have a different ordering in the Asana web app than the other assignee status groups; this endpoint will still return them in list order in `Later` (differently than they show up in Asana, but the same order as in Asana's mobile apps).

Note: Access control is enforced for this endpoint as with all Asana API endpoints, meaning a user's private tasks will be filtered out if the API-authenticated user does not have access to them.

Note: Both complete and incomplete tasks are returned by default unless they are filtered out (for example, setting `completed_since=now` will return only incomplete tasks, which is the default view for “My Tasks” in Asana.)

Parameters:

  • completed_since (String) (defaults to: nil)

    Only return tasks that are either incomplete or that have been

  • completed

    since this time.

  • per_page (Integer) (defaults to: 20)

    the number of records to fetch per page.

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

    the request I/O options.


83
84
85
86
# File 'lib/asana/resources/user_task_list.rb', line 83

def tasks(completed_since: nil, per_page: 20, options: {})
  params = { completed_since: completed_since, limit: per_page }.reject { |_,v| v.nil? || Array(v).empty? }
  Collection.new(parse(client.get("/user_task_lists/#{gid}/tasks", params: params, options: options)), type: Task, client: client)
end