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

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)



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

def email
  @email
end

#idObject (readonly)



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

def id
  @id
end

#nameObject (readonly)



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

def name
  @name
end

#photoObject (readonly)



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

def photo
  @photo
end

#workspacesObject (readonly)



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

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.



69
70
71
72
# File 'lib/asana/resources/user.rb', line 69

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.



46
47
48
49
# File 'lib/asana/resources/user.rb', line 46

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.



57
58
59
60
# File 'lib/asana/resources/user.rb', line 57

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.



34
35
36
37
# File 'lib/asana/resources/user.rb', line 34

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.



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

def plural_name
  'users'
end