Class: Mural::Client::Users

Inherits:
Object
  • Object
show all
Extended by:
Forwardable
Includes:
MuralUsers, RoomUsers
Defined in:
lib/mural/client/users.rb,
lib/mural/client/users/room_users.rb,
lib/mural/client/users/mural_users.rb

Defined Under Namespace

Modules: MuralUsers, RoomUsers

Instance Method Summary collapse

Methods included from RoomUsers

#invite_room_users, #room_users, #update_room_user_permissions

Methods included from MuralUsers

#invite_mural_users, #mural_users, #remove_mural_users, #update_mural_user_permissions

Constructor Details

#initialize(client) ⇒ Users

Returns a new instance of Users.



13
14
15
# File 'lib/mural/client/users.rb', line 13

def initialize(client)
  @client = client
end

Instance Method Details

#current_userObject



18
19
20
21
22
# File 'lib/mural/client/users.rb', line 18

def current_user
  json = get('/api/public/v1/users/me')['value']

  ::Mural::CurrentUser.decode(json)
end

#invite_workspace_users(workspace_id, message: nil, emails: []) ⇒ Object



25
26
27
28
29
30
31
32
33
34
35
# File 'lib/mural/client/users.rb', line 25

def invite_workspace_users(workspace_id, message: nil, emails: [])
  json = post(
    "/api/public/v1/workspaces/#{workspace_id}/users/invite",
    {
      message: message,
      invitations: emails.map { |email| { email: email } }
    }
  )

  json['value'].map { |inv| Mural::WorkspaceInvitation.decode(inv) }
end

#remove_room_users(room_id, emails: []) ⇒ Object



50
51
52
53
54
55
56
57
58
59
# File 'lib/mural/client/users/room_users.rb', line 50

def remove_room_users(room_id, emails: [])
  json = post(
    "/api/public/v1/rooms/#{room_id}/users/remove",
    { emails: emails }
  )

  json['value'].map do |removed_user|
    Mural::RemovedRoomUser.decode(removed_user)
  end
end