Class: Asana::Resources::User

Inherits:
Resource
  • Object
show all
Defined in:
lib/asana/resources/user.rb

Overview

A user object represents an account in Asana that can be given access to various workspaces, projects, and tasks.

Like other objects in the system, users are referred to by numerical IDs. However, the special string identifier ‘me` can be used anywhere a user ID is accepted, to refer to the current authenticated user.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Resource

inherited, #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

#emailObject (readonly)



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

def email
  @email
end

#gidObject (readonly)



17
18
19
# File 'lib/asana/resources/user.rb', line 17

def gid
  @gid
end

#idObject (readonly)



15
16
17
# File 'lib/asana/resources/user.rb', line 15

def id
  @id
end

#nameObject (readonly)



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

def name
  @name
end

#photoObject (readonly)



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

def photo
  @photo
end

#resource_typeObject (readonly)



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

def resource_type
  @resource_type
end

#workspacesObject (readonly)



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

def workspaces
  @workspaces
end

Class Method Details

.find_all(client, workspace: nil, per_page: 20, options: {}) ⇒ Object

Returns the user records for all users in all workspaces and organizations accessible to the authenticated user. Accepts an optional workspace ID parameter.

Parameters:

  • workspace (Id) (defaults to: nil)

    The workspace or organization to filter users on.

  • per_page (Integer) (defaults to: 20)

    the number of records to fetch per page.

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

    the request I/O options.



73
74
75
76
# File 'lib/asana/resources/user.rb', line 73

def find_all(client, workspace: nil, per_page: 20, options: {})
  params = { workspace: workspace, limit: per_page }.reject { |_,v| v.nil? || Array(v).empty? }
  Collection.new(parse(client.get("/users", params: params, options: options)), type: self, client: client)
end

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

Returns the full user record for the single user with the provided ID.

Parameters:

  • id (String)

    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.

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

    the request I/O options.



50
51
52
53
# File 'lib/asana/resources/user.rb', line 50

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

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

.find_by_workspace(client, workspace: required("workspace"), per_page: 20, options: {}) ⇒ Object

Returns the user records for all users in the specified workspace or organization.

Parameters:

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

    The workspace in which to get users.

  • per_page (Integer) (defaults to: 20)

    the number of records to fetch per page.

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

    the request I/O options.



61
62
63
64
# File 'lib/asana/resources/user.rb', line 61

def find_by_workspace(client, workspace: required("workspace"), per_page: 20, options: {})
  params = { limit: per_page }.reject { |_,v| v.nil? || Array(v).empty? }
  Collection.new(parse(client.get("/workspaces/#{workspace}/users", params: params, options: options)), type: self, client: client)
end

.me(client, options: {}) ⇒ Object

Returns the full user record for the currently authenticated user.

Parameters:

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

    the request I/O options.



38
39
40
41
# File 'lib/asana/resources/user.rb', line 38

def me(client, options: {})

  Resource.new(parse(client.get("/users/me", options: options)).first, client: client)
end

.plural_nameObject

Returns the plural name of the resource.



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

def plural_name
  'users'
end

Instance Method Details

#get_user_favorites(workspace: required("workspace"), resource_type: required("resource_type"), options: {}) ⇒ Object

Returns all of a user’s favorites in the given workspace, of the given type. Results are given in order (The same order as Asana’s sidebar).

Parameters:

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

    The workspace in which to get favorites.

  • resource_type (Enum) (defaults to: required("resource_type"))

    The resource type of favorites to be returned.

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

    the request I/O options.



85
86
87
88
# File 'lib/asana/resources/user.rb', line 85

def get_user_favorites(workspace: required("workspace"), resource_type: required("resource_type"), options: {})
  params = { workspace: workspace, resource_type: resource_type }.reject { |_,v| v.nil? || Array(v).empty? }
  Collection.new(parse(client.get("/users/#{gid}/favorites", params: params, options: options)), type: Resource, client: client)
end