-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathhelpers.rb
89 lines (65 loc) · 2.02 KB
/
helpers.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
#//////////////
#// HELPERS //
#////////////
def getPublicRooms()
public_rooms = {}
$fb_root.get("/chats").body.each do |roomname, roomdata|
public_rooms[roomname] = roomdata.tap { |rd| rd.delete("messages") } if roomdata["private"] == false
end
return public_rooms
end
def getUserRooms(username)
user_rooms = {}
$fb_root.get("/chats").body.each do |roomname, roomdata| #Return room data minus messages
user_rooms[roomname] = roomdata.tap { |rd| rd.delete("messages") } if roomdata["private"] == true && roomdata["users"][username]
end
return user_rooms
end
def getUserData(user, data=nil)
return false if !user || user == ""
if data
return $fb_root.get("/users/#{user}/#{data}").body
else
return $fb_root.get("/users/#{user}").body
end
end
def roomPrivate?(room)
$fb_root.get("/chats/#{room}/private").body
end
def getChatData(room)
$fb_root.get("/chats/#{room}").body
end
def isAdmin?(user, room)
return $fb_root.get("chats/#{room}/users/#{user}/admin").body
end
def changeRoomStatus(room, priv=false)
$fb_root.update( "/chats/#{room}", :private => priv)
end
def createRoom(room_name, admin, private=false)
$fb_root.set( "/chats/#{room_name}", :private => private, :created_on => getTime())
addUserToRoom(admin, room_name, true)
end
def addUserToRoom(user, room, admin=false )
$fb_root.set( "/chats/#{room}/users/#{user}", :admin => admin, :added_on => getTime() )
end
#def grantAdmin(user, room )
# $fb_root.update( "/chats/#{room}/users/#{user}", :admin => true )
#end
def removeUsersFromRoom(user, room, message=nil )
$fb_root.delete( "/chats/#{room}/users/#{user}" )
end
def getUsersInRoom(room)
user_list = {}
cc = Firebase::Client.new($base_uri + '/chats/' + room + "/users")
cc.get('/').body.each do |user, user_data|
user_list[user] = user_data
end
return user_list
end
def getUsers()
return $fb_root.get("users").body
end
def getTime() #Rethink time formatting to make consistent with js?
Firebase::ServerValue::TIMESTAMP
#Time.now.to_s
end