Class: Aha::Auth::UsersResource

Inherits:
Object
  • Object
show all
Defined in:
lib/aha/auth/users_resource.rb

Overview

API resource for user management operations

Instance Method Summary collapse

Constructor Details

#initialize(client) ⇒ UsersResource

Returns a new instance of UsersResource.



7
8
9
# File 'lib/aha/auth/users_resource.rb', line 7

def initialize(client)
  @client = client
end

Instance Method Details

#create(email:, first_name:, last_name:, password:) ⇒ User

Create a new user

Parameters:

  • email (String)

    User’s email address

  • first_name (String)

    User’s first name

  • last_name (String)

    User’s last name

  • password (String)

    User’s password

Returns:

  • (User)

    The created user



18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/aha/auth/users_resource.rb', line 18

def create(email:, first_name:, last_name:, password:)
  response = post(
    "/api/core/auth/users", {
      email: email,
      first_name: first_name,
      last_name: last_name,
      password: password
    }
  )

  User.new(response)
end

#delete(id) ⇒ Boolean

Delete a user

Parameters:

  • id (String, Integer)

    The user ID

Returns:

  • (Boolean)

    true if deleted



54
55
56
57
# File 'lib/aha/auth/users_resource.rb', line 54

def delete(id)
  delete_request("/api/core/auth/users/#{id}")
  true
end

#find(id) ⇒ User

Find a user by ID

Parameters:

  • id (String, Integer)

    The user ID

Returns:

  • (User)

    The user



35
36
37
38
# File 'lib/aha/auth/users_resource.rb', line 35

def find(id)
  response = get("/api/core/auth/users/#{id}")
  User.new(response)
end

#list(page: 1, per_page: 50) ⇒ Hash

List users with pagination

Parameters:

  • page (Integer) (defaults to: 1)

    Page number (default: 1)

  • per_page (Integer) (defaults to: 50)

    Users per page (default: 50)

Returns:

  • (Hash)

    Response with :users, :total, :page



64
65
66
67
68
69
70
71
72
# File 'lib/aha/auth/users_resource.rb', line 64

def list(page: 1, per_page: 50)
  response = get("/api/core/auth/users", page: page, per_page: per_page)

  {
    users: response["users"].map { |u| User.new(u) },
    total: response["total"],
    page: response["page"]
  }
end

#update(id, **attributes) ⇒ User

Update a user

Parameters:

  • id (String, Integer)

    The user ID

  • attributes (Hash)

    Attributes to update (:email, :first_name, :last_name, :password)

Returns:

  • (User)

    The updated user



45
46
47
48
# File 'lib/aha/auth/users_resource.rb', line 45

def update(id, **attributes)
  response = put("/api/core/auth/users/#{id}", attributes)
  User.new(response)
end