Class: DatabasusRuby::Users

Inherits:
Object
  • Object
show all
Includes:
Endpoint
Defined in:
lib/databasus_ruby/objects/users.rb,
sig/databasus_ruby.rbs

Overview

The signed-in user, instance-wide user administration and instance settings.

client.users.me.email
client.users.list(query: "ops", limit: 25).each { |user| ... }

The #list / #get / #activate / #deactivate / #change_role and settings methods are ADMIN-only and answer 403 for a MEMBER token.

Constant Summary collapse

ROLES =

Returns:

  • (Array[String])
%w[ADMIN MEMBER].freeze

Instance Attribute Summary

Attributes included from Endpoint

#client

Instance Method Summary collapse

Methods included from Endpoint

#acknowledged, #build, #collection, #compact, #escape, #http_delete, #http_get, #http_post, #http_put, #initialize, #inspect, #object, #single_value, #with_default_workspace

Methods inherited from Object

#==, #[], #hash, #initialize, #inspect, #key?, #keys, #method_missing, #respond_to_missing?, #to_h

Dynamic Method Handling

This class handles dynamic methods through the method_missing method in the class DatabasusRuby::Object

Instance Method Details

#activate(id) ⇒ Boolean

POST /users/id/activate (ADMIN)

Parameters:

  • id (String)

Returns:

  • (Boolean)


55
56
57
# File 'lib/databasus_ruby/objects/users.rb', line 55

def activate(id)
  acknowledged(http_post("users/#{escape(id)}/activate"))
end

#change_password(new_password:) ⇒ Object

PUT /users/change-password

Parameters:

  • new_password: (String)

Returns:



28
29
30
# File 'lib/databasus_ruby/objects/users.rb', line 28

def change_password(new_password:)
  object(http_put("users/change-password", { newPassword: new_password }))
end

#change_role(id, role:) ⇒ Boolean

PUT /users/id/role (ADMIN) — role is one of ROLES.

Parameters:

  • id (String)
  • role: (String)

Returns:

  • (Boolean)


65
66
67
# File 'lib/databasus_ruby/objects/users.rb', line 65

def change_role(id, role:)
  acknowledged(http_put("users/#{escape(id)}/role", { role: role }))
end

#deactivate(id) ⇒ Boolean

POST /users/id/deactivate (ADMIN)

Parameters:

  • id (String)

Returns:

  • (Boolean)


60
61
62
# File 'lib/databasus_ruby/objects/users.rb', line 60

def deactivate(id)
  acknowledged(http_post("users/#{escape(id)}/deactivate"))
end

#get(id) ⇒ Object Also known as: find

GET /users/id (ADMIN)

Parameters:

  • id (String)

Returns:



49
50
51
# File 'lib/databasus_ruby/objects/users.rb', line 49

def get(id)
  object(http_get("users/#{escape(id)}"))
end

#invite(email:, intended_workspace_id: nil, intended_workspace_role: nil) ⇒ Object

POST /users/invite

Parameters:

  • email: (String)
  • intended_workspace_id: (String, nil) (defaults to: nil)
  • intended_workspace_role: (String, nil) (defaults to: nil)

Returns:



33
34
35
36
37
38
39
# File 'lib/databasus_ruby/objects/users.rb', line 33

def invite(email:, intended_workspace_id: nil, intended_workspace_role: nil)
  object(http_post("users/invite", {
                     email: email,
                     intendedWorkspaceId: intended_workspace_id,
                     intendedWorkspaceRole: intended_workspace_role
                   }))
end

#list(limit: nil, offset: nil, before_date: nil, query: nil) ⇒ Collection Also known as: all

GET /users (ADMIN)

Parameters:

  • limit: (Integer, nil) (defaults to: nil)
  • offset: (Integer, nil) (defaults to: nil)
  • before_date: (String, nil) (defaults to: nil)
  • query: (String, nil) (defaults to: nil)

Returns:



42
43
44
45
# File 'lib/databasus_ruby/objects/users.rb', line 42

def list(limit: nil, offset: nil, before_date: nil, query: nil)
  response = http_get("users", { limit: limit, offset: offset, beforeDate: before_date, query: query })
  collection(response, key: "users")
end

#meObject

GET /users/me

Returns:



18
19
20
# File 'lib/databasus_ruby/objects/users.rb', line 18

def me
  object(http_get("users/me"))
end

#settingsObject

GET /users/settings (ADMIN) — instance-wide registration settings.

Returns:



70
71
72
# File 'lib/databasus_ruby/objects/users.rb', line 70

def settings
  object(http_get("users/settings"))
end

#update_me(name: nil, email: nil) ⇒ Object

PUT /users/me

Parameters:

  • name: (String, nil) (defaults to: nil)
  • email: (String, nil) (defaults to: nil)

Returns:



23
24
25
# File 'lib/databasus_ruby/objects/users.rb', line 23

def update_me(name: nil, email: nil)
  object(http_put("users/me", { name: name, email: email }))
end

#update_settings(**attributes) ⇒ Object

PUT /users/settings (ADMIN)

Parameters:

Returns:



75
76
77
# File 'lib/databasus_ruby/objects/users.rb', line 75

def update_settings(**attributes)
  object(http_put("users/settings", attributes))
end