class Openfire::Api
Public Class Methods
new(endpoint_url, access_token)
click to toggle source
# File lib/openfire/api.rb, line 3 def initialize(endpoint_url, access_token) @endpoint_url = endpoint_url @access_token = access_token end
Public Instance Methods
add_user_to_chatroom(room_name, role, username_or_jid, params={})
click to toggle source
# 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)
click to toggle source
# 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)
click to toggle source
# 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)
click to toggle source
# 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={})
click to toggle source
# 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)
click to toggle source
# 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)
click to toggle source
# 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={})
click to toggle source
# 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={})
click to toggle source
# 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)
click to toggle source
# 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)
click to toggle source
# 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)
click to toggle source
# 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)
click to toggle source
# 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={})
click to toggle source
# 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)
click to toggle source
# 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)
click to toggle source
# 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)
click to toggle source
# 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)
click to toggle source
# 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)
click to toggle source
# 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)
click to toggle source
# 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={})
click to toggle source
# 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_count()
click to toggle source
# 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)
click to toggle source
# 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_groups()
click to toggle source
# 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_sessions()
click to toggle source
# 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_properties()
click to toggle source
# 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)
click to toggle source
# 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)
click to toggle source
# 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)
click to toggle source
# 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)
click to toggle source
# 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)
click to toggle source
# 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={})
click to toggle source
# 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)
click to toggle source
# 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)
click to toggle source
# 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)
click to toggle source
# 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={})
click to toggle source
# 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={})
click to toggle source
# 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)
click to toggle source
# 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={})
click to toggle source
# 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={})
click to toggle source
# 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
Private Instance Methods
default_headers()
click to toggle source
# File lib/openfire/api.rb, line 232 def default_headers { content_type: :json, accept: :json, authorization: @access_token } end
parse_response(response)
click to toggle source
# File lib/openfire/api.rb, line 253 def parse_response(response) result = { headers: response.headers, body: (JSON.parse(response.body) rescue response.body), status_code: response.code } result end
web_request(uri_method, action, params={}, headers={})
click to toggle source
# File lib/openfire/api.rb, line 240 def web_request(uri_method, action, params={}, headers={}) begin parse_response(RestClient::Request.execute({ method: uri_method, url: "#{@endpoint_url}#{action}", payload: params, headers: headers })) rescue => e parse_response(e.response) end end