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