Class: Babili::Platform::Membership

Inherits:
OpenStruct
  • Object
show all
Defined in:
lib/babili/platform/membership.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#room_idObject

Returns the value of attribute room_id.



4
5
6
# File 'lib/babili/platform/membership.rb', line 4

def room_id
  @room_id
end

#user_idObject

Returns the value of attribute user_id.



5
6
7
# File 'lib/babili/platform/membership.rb', line 5

def user_id
  @user_id
end

Class Method Details

.create(params = {}) ⇒ Object



20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/babili/platform/membership.rb', line 20

def self.create(params = {})
  room_id     = params.delete(:room_id)
  user_id     = params.delete(:user_id)
  create_path = path.gsub(":room_id", room_id).gsub(":user_id", user_id)
  params      = {
    attributes: {
      open: params[:open] || params["open"]
    }
  }
  raw_membership     = Babili::Client.post(create_path, params)["data"]
  membership         = new(raw_membership["attributes"])
  membership.room_id = raw_membership["relationships"]["room"]["data"]["id"]
  membership.user_id = raw_membership["relationships"]["user"]["data"]["id"]
  membership
end

.pathObject



7
8
9
# File 'lib/babili/platform/membership.rb', line 7

def self.path
  "platform/rooms/:room_id/users/:user_id/membership"
end

Instance Method Details

#deleteObject



11
12
13
14
15
16
17
18
# File 'lib/babili/platform/membership.rb', line 11

def delete
  delete_path        = self.class.path.gsub(":room_id", room_id).gsub(":user_id", user_id)
  raw_membership     = Babili::Client.delete(delete_path, params)["data"]
  membership         = self.class.new(raw_membership["attributes"])
  membership.room_id = raw_membership["relationships"]["room"]["data"]["id"]
  membership.user_id = raw_membership["relationships"]["user"]["data"]["id"]
  membership
end