Class: Openfire::Api

Inherits:
Object
  • Object
show all
Defined in:
lib/openfire/api.rb

Instance Method Summary collapse

Constructor Details

#initialize(endpoint_url, access_token) ⇒ Api

Returns a new instance of Api.



3
4
5
6
# File 'lib/openfire/api.rb', line 3

def initialize(endpoint_url, access_token)
  @endpoint_url = endpoint_url
  @access_token = access_token
end

Instance Method Details

#add_user_to_chatroom(room_name, role, username_or_jid, params = {}) ⇒ Object



126
127
128
129
# File 'lib/openfire/api.rb', line 126

def add_user_to_chatroom(room_name, role, username_or_jid, params={})
  request = web_request('POST', "/chatrooms/#{room_name}/#{role}/#{username_or_jid}", params, default_headers)
  (request[:status_code] == 201)
end

#add_user_to_group(username, groupname) ⇒ Object



49
50
51
52
# File 'lib/openfire/api.rb', line 49

def add_user_to_group(username, groupname)
  request = web_request('POST', "/users/#{username}/groups/#{groupname}", { }, default_headers)
  (request[:status_code] == 201)
end

#add_user_to_groups(username, groupnames) ⇒ Object



54
55
56
57
58
# File 'lib/openfire/api.rb', line 54

def add_user_to_groups(username, groupnames)
  payload = { groupname: groupnames }.to_json
  request = web_request('POST', "/users/#{username}/groups", payload, default_headers)
  (request[:status_code] == 201)
end

#close_user_sessions(username) ⇒ Object



219
220
221
222
# File 'lib/openfire/api.rb', line 219

def close_user_sessions(username)
  request = web_request('DELETE', "/sessions/#{username}", { }, default_headers)
  (request[:status_code] == 200)
end

#create_chatroom(room_data = {}) ⇒ Object



111
112
113
114
# File 'lib/openfire/api.rb', line 111

def create_chatroom(room_data={})
  request = web_request('POST', '/chatrooms', room_data.to_json, default_headers)
  (request[:status_code] == 201)
end

#create_group(group_data) ⇒ Object



184
185
186
187
# File 'lib/openfire/api.rb', line 184

def create_group(group_data)
  request = web_request('POST', '/groups', group_data.to_json, default_headers)
  (request[:status_code] == 201)
end

#create_system_property(property_name, value) ⇒ Object



146
147
148
149
150
151
152
153
# File 'lib/openfire/api.rb', line 146

def create_system_property(property_name, value)
  payload = {
    '@key' => property_name,
    '@value' => value
  }.to_json
  request = web_request('POST', '/system/properties', payload, default_headers)
  (request[:status_code] == 201)
end

#create_user(user_data = {}) ⇒ Object



18
19
20
21
# File 'lib/openfire/api.rb', line 18

def create_user(user_data={})
  request = web_request('POST', '/users', user_data.to_json, default_headers)
  (request[:status_code] == 201)
end

#create_user_roster(username, roster_data = {}) ⇒ Object



76
77
78
79
# File 'lib/openfire/api.rb', line 76

def create_user_roster(username, roster_data={})
  request = web_request('POST', "/users/#{username}/roster", roster_data.to_json, default_headers)
  (request[:status_code] == 201)
end

#delete_chatroom(room_name) ⇒ Object



116
117
118
119
# File 'lib/openfire/api.rb', line 116

def delete_chatroom(room_name)
  request = web_request('DELETE', "/chatrooms/#{room_name}", { }, default_headers)
  (request[:status_code] == 200)
end

#delete_group(groupname) ⇒ Object



194
195
196
197
# File 'lib/openfire/api.rb', line 194

def delete_group(groupname)
  request = web_request('DELETE', "/groups/#{groupname}", { }, default_headers)
  (request[:status_code] == 200)
end

#delete_system_property(property_name) ⇒ Object



155
156
157
158
# File 'lib/openfire/api.rb', line 155

def delete_system_property(property_name)
  request = web_request('DELETE', "/system/properties/#{property_name}", { }, default_headers)
  (request[:status_code] == 200)
end

#delete_user(username) ⇒ Object



28
29
30
31
# File 'lib/openfire/api.rb', line 28

def delete_user(username)
  request = web_request('DELETE', "/users/#{username}", { }, default_headers)
  (request[:status_code] == 200)
end

#delete_user_from_chatroom(room_name, role, username_or_jid, params = {}) ⇒ Object



131
132
133
134
# File 'lib/openfire/api.rb', line 131

def delete_user_from_chatroom(room_name, role, username_or_jid, params={})
  request = web_request('DELETE', "/chatrooms/#{room_name}/#{role}/#{username_or_jid}", params, default_headers)
  (request[:status_code] == 200)
end

#delete_user_from_group(username, groupname) ⇒ Object



60
61
62
63
# File 'lib/openfire/api.rb', line 60

def delete_user_from_group(username, groupname)
  request = web_request('DELETE', "/users/#{username}/groups/#{groupname}", { }, default_headers)
  (request[:status_code] == 200)
end

#delete_user_from_groups(username, groupnames) ⇒ Object



65
66
67
68
69
# File 'lib/openfire/api.rb', line 65

def delete_user_from_groups(username, groupnames)
  payload = { groupname: groupnames }.to_json
  request = web_request('DELETE', "/users/#{username}/groups", payload, default_headers)
  (request[:status_code] == 200)
end

#delete_user_roster(username, jid) ⇒ Object



81
82
83
84
# File 'lib/openfire/api.rb', line 81

def delete_user_roster(username, jid)
  request = web_request('DELETE', "/users/#{username}/roster/#{jid}", { }, default_headers)
  (request[:status_code] == 200)
end

#get_chatroom(room_name) ⇒ Object



96
97
98
99
# File 'lib/openfire/api.rb', line 96

def get_chatroom(room_name)
  request = web_request('GET', "/chatrooms/#{room_name}", { }, default_headers)
  Openfire::ChatRoom.new(request[:body])
end

#get_chatroom_occupants(room_name) ⇒ Object



106
107
108
109
# File 'lib/openfire/api.rb', line 106

def get_chatroom_occupants(room_name)
  request = web_request('GET', "/chatrooms/#{room_name}/occupants", { }, default_headers)
  request[:body]
end

#get_chatroom_participants(room_name) ⇒ Object



101
102
103
104
# File 'lib/openfire/api.rb', line 101

def get_chatroom_participants(room_name)
  request = web_request('GET', "/chatrooms/#{room_name}/participants", { }, default_headers)
  request[:body]
end

#get_chatrooms(filters = {}) ⇒ Object



91
92
93
94
# File 'lib/openfire/api.rb', line 91

def get_chatrooms(filters={})
  request = web_request('GET', '/chatrooms', filters, default_headers)
  request[:body]['chatroom'].map { |x| Openfire::ChatRoom.new(x) }
end

#get_concurrent_sessions_countObject



169
170
171
172
# File 'lib/openfire/api.rb', line 169

def get_concurrent_sessions_count
  request = web_request('GET', '/system/statistics/sessions', { }, default_headers)
  Openfire::SessionsCount.new(request[:body])
end

#get_group(groupname) ⇒ Object



179
180
181
182
# File 'lib/openfire/api.rb', line 179

def get_group(groupname)
  request = web_request('GET', "/groups/#{groupname}", { }, default_headers)
  Openfire::Group.new(request[:body])
end

#get_groupsObject



174
175
176
177
# File 'lib/openfire/api.rb', line 174

def get_groups
  request = web_request('GET', '/groups', { }, default_headers)
  request[:body]['group'].map { |x| Openfire::Group.new(x) }
end

#get_sessionsObject



199
200
201
202
203
204
205
206
207
# File 'lib/openfire/api.rb', line 199

def get_sessions
  request = web_request('GET', '/sessions', { }, default_headers)
  data = request[:body]['session']
  if data.is_a?(Array)
    data.map { |x| Openfire::Session.new(x) }
  else
    [Openfire::Session.new(data)]
  end
end

#get_system_propertiesObject



136
137
138
139
# File 'lib/openfire/api.rb', line 136

def get_system_properties
  request = web_request('GET', '/system/properties', { }, default_headers)
  request[:body]['property'].map { |x| Openfire::SystemProperty.new(x) }
end

#get_system_property(property_name) ⇒ Object



141
142
143
144
# File 'lib/openfire/api.rb', line 141

def get_system_property(property_name)
  request = web_request('GET', "/system/properties/#{property_name}", { }, default_headers)
  Openfire::SystemProperty.new(request[:body])
end

#get_user(username) ⇒ Object



13
14
15
16
# File 'lib/openfire/api.rb', line 13

def get_user(username)
  request = web_request('GET', "/users/#{username}", { }, default_headers)
  Openfire::User.new(request[:body])
end

#get_user_groups(username) ⇒ Object



43
44
45
46
47
# File 'lib/openfire/api.rb', line 43

def get_user_groups(username)
  request = web_request('GET', "/users/#{username}/groups", { }, default_headers)
  body = request[:body]['groupname']
  body.is_a?(Array) ? body : [body]
end

#get_user_roster(username) ⇒ Object



71
72
73
74
# File 'lib/openfire/api.rb', line 71

def get_user_roster(username)
  request = web_request('GET', "/users/#{username}/roster", { }, default_headers)
  Openfire::UserRoster.new(request[:body])
end

#get_user_sessions(username) ⇒ Object



209
210
211
212
213
214
215
216
217
# File 'lib/openfire/api.rb', line 209

def get_user_sessions(username)
  request = web_request('GET', "/sessions/#{username}", { }, default_headers)
  data = request[:body]['session']
  if data.is_a?(Array)
    data.map { |x| Openfire::Session.new(x) }
  else
    [Openfire::Session.new(data)]
  end
end

#get_users(filters = {}) ⇒ Object



8
9
10
11
# File 'lib/openfire/api.rb', line 8

def get_users(filters={})
  request = web_request('GET', '/users', filters, default_headers)
  request[:body]['user'].map { |x| Openfire::User.new(x) }
end

#lock_user(username) ⇒ Object



33
34
35
36
# File 'lib/openfire/api.rb', line 33

def lock_user(username)
  request = web_request('POST', "/lockouts/#{username}", { }, default_headers)
  (request[:status_code] == 200)
end

#send_broadcast_message(message_text) ⇒ Object



224
225
226
227
228
# File 'lib/openfire/api.rb', line 224

def send_broadcast_message(message_text)
  payload = { body: message_text }.to_json
  request = web_request('POST', '/messages/users', payload, default_headers)
  (request[:status_code] == 201)
end

#unlock_user(username) ⇒ Object



38
39
40
41
# File 'lib/openfire/api.rb', line 38

def unlock_user(username)
  request = web_request('DELETE', "/lockouts/#{username}", { }, default_headers)
  (request[:status_code] == 200)
end

#update_chatroom(room_name, room_data = {}) ⇒ Object



121
122
123
124
# File 'lib/openfire/api.rb', line 121

def update_chatroom(room_name, room_data={})
  request = web_request('PUT', "/chatrooms/#{room_name}", room_data.to_json, default_headers)
  (request[:status_code] == 200)
end

#update_group(groupname, group_data = {}) ⇒ Object



189
190
191
192
# File 'lib/openfire/api.rb', line 189

def update_group(groupname, group_data={})
  request = web_request('PUT', "/groups/#{groupname}", group_data.to_json, default_headers)
  (request[:status_code] == 200)
end

#update_system_property(property_name, value) ⇒ Object



160
161
162
163
164
165
166
167
# File 'lib/openfire/api.rb', line 160

def update_system_property(property_name, value)
  payload = {
    '@key' => property_name,
    '@value' => value
  }.to_json
  request = web_request('PUT', "/system/properties/#{property_name}", payload, default_headers)
  (request[:status_code] == 200)
end

#update_user(username, user_data = {}) ⇒ Object



23
24
25
26
# File 'lib/openfire/api.rb', line 23

def update_user(username, user_data={})
  request = web_request('PUT', "/users/#{username}", user_data.to_json, default_headers)
  (request[:status_code] == 200)
end

#update_user_roster(username, jid, roster_data = {}) ⇒ Object



86
87
88
89
# File 'lib/openfire/api.rb', line 86

def update_user_roster(username, jid, roster_data={})
  request = web_request('PUT', "/users/#{username}/roster/#{jid}", roster_data.to_json, default_headers)
  (request[:status_code] == 200)
end