openfire_rest_api 0.2.1 → 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +4 -0
- data/lib/openfire/api.rb +33 -27
- data/lib/openfire/chat_room.rb +26 -0
- data/lib/openfire/user_roster.rb +21 -0
- data/lib/openfire_rest_api.rb +2 -0
- data/lib/openfire_rest_api/version.rb +1 -1
- metadata +3 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c1e7166e7597e0db73fb466f68a031e1a5ad0024
|
4
|
+
data.tar.gz: 1e45e87588576e50db7ca5c96b94708199b0c591
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 51e5ec14c482737e2c12197be43a4a19dd37329301fe1fb9db29eceeeac9e3b8b04a433105ac78cca1c5778ed532eebec06556316a418003254caceaf6476097
|
7
|
+
data.tar.gz: 653f7d5f2eee848f4eb3219f9eeb796f4df5c7ab6764f576751acd0de8e0e7586ba7f60ed69307c7b2215468f979e3b20f36069c618b65b97e0fc2b44448faba
|
data/CHANGELOG.md
CHANGED
data/lib/openfire/api.rb
CHANGED
@@ -43,84 +43,94 @@ module Openfire
|
|
43
43
|
def get_user_groups(username)
|
44
44
|
request = web_request('GET', "/users/#{username}/groups", { }, default_headers)
|
45
45
|
body = request[:body]['groupname']
|
46
|
-
|
47
46
|
body.is_a?(Array) ? body : [body]
|
48
47
|
end
|
49
48
|
|
50
49
|
def add_user_to_group(username, groupname)
|
51
50
|
request = web_request('POST', "/users/#{username}/groups/#{groupname}", { }, default_headers)
|
52
|
-
|
53
51
|
(request[:status_code] == 201)
|
54
52
|
end
|
55
53
|
|
56
54
|
def add_user_to_groups(username, groupnames)
|
57
55
|
payload = { groupname: groupnames }.to_json
|
58
|
-
|
59
56
|
request = web_request('POST', "/users/#{username}/groups", payload, default_headers)
|
60
|
-
|
61
57
|
(request[:status_code] == 201)
|
62
58
|
end
|
63
59
|
|
64
60
|
def delete_user_from_group(username, groupname)
|
65
61
|
request = web_request('DELETE', "/users/#{username}/groups/#{groupname}", { }, default_headers)
|
66
|
-
|
67
62
|
(request[:status_code] == 200)
|
68
63
|
end
|
69
64
|
|
70
65
|
def delete_user_from_groups(username, groupnames)
|
71
66
|
payload = { groupname: groupnames }.to_json
|
72
|
-
|
73
67
|
request = web_request('DELETE', "/users/#{username}/groups", payload, default_headers)
|
74
|
-
|
75
68
|
(request[:status_code] == 200)
|
76
69
|
end
|
77
70
|
|
78
71
|
def get_user_roster(username)
|
79
|
-
|
72
|
+
request = web_request('GET', "/users/#{username}/roster", { }, default_headers)
|
73
|
+
Openfire::UserRoster.new(request[:body])
|
80
74
|
end
|
81
75
|
|
82
76
|
def create_user_roster(username, roster_data={})
|
83
|
-
|
77
|
+
request = web_request('POST', "/users/#{username}/roster", roster_data.to_json, default_headers)
|
78
|
+
(request[:status_code] == 201)
|
84
79
|
end
|
85
80
|
|
86
81
|
def delete_user_roster(username, jid)
|
87
|
-
|
82
|
+
request = web_request('DELETE', "/users/#{username}/roster/#{jid}", { }, default_headers)
|
83
|
+
(request[:status_code] == 200)
|
88
84
|
end
|
89
85
|
|
90
86
|
def update_user_roster(username, jid, roster_data={})
|
91
|
-
|
87
|
+
request = web_request('PUT', "/users/#{username}/roster/#{jid}", roster_data.to_json, default_headers)
|
88
|
+
(request[:status_code] == 200)
|
92
89
|
end
|
93
90
|
|
94
|
-
def get_chatrooms
|
95
|
-
|
91
|
+
def get_chatrooms(filters={})
|
92
|
+
request = web_request('GET', '/chatrooms', filters, default_headers)
|
93
|
+
request[:body]['chatroom'].map { |x| Openfire::ChatRoom.new(x) }
|
96
94
|
end
|
97
95
|
|
98
96
|
def get_chatroom(room_name)
|
99
|
-
|
97
|
+
request = web_request('GET', "/chatrooms/#{room_name}", { }, default_headers)
|
98
|
+
Openfire::ChatRoom.new(request[:body])
|
100
99
|
end
|
101
100
|
|
102
101
|
def get_chatroom_participants(room_name)
|
103
|
-
|
102
|
+
request = web_request('GET', "/chatrooms/#{room_name}/participants", { }, default_headers)
|
103
|
+
request[:body]
|
104
|
+
end
|
105
|
+
|
106
|
+
def get_chatroom_occupants(room_name)
|
107
|
+
request = web_request('GET', "/chatrooms/#{room_name}/occupants", { }, default_headers)
|
108
|
+
request[:body]
|
104
109
|
end
|
105
110
|
|
106
111
|
def create_chatroom(room_data={})
|
107
|
-
|
112
|
+
request = web_request('POST', '/chatrooms', room_data.to_json, default_headers)
|
113
|
+
(request[:status_code] == 201)
|
108
114
|
end
|
109
115
|
|
110
116
|
def delete_chatroom(room_name)
|
111
|
-
|
117
|
+
request = web_request('DELETE', "/chatrooms/#{room_name}", { }, default_headers)
|
118
|
+
(request[:status_code] == 200)
|
112
119
|
end
|
113
120
|
|
114
121
|
def update_chatroom(room_name, room_data={})
|
115
|
-
|
122
|
+
request = web_request('PUT', "/chatrooms/#{room_name}", room_data.to_json, default_headers)
|
123
|
+
(request[:status_code] == 200)
|
116
124
|
end
|
117
125
|
|
118
|
-
def add_user_to_chatroom(room_name, username_or_jid,
|
119
|
-
|
126
|
+
def add_user_to_chatroom(room_name, role, username_or_jid, params={})
|
127
|
+
request = web_request('POST', "/chatrooms/#{room_name}/#{role}/#{username_or_jid}", params, default_headers)
|
128
|
+
(request[:status_code] == 201)
|
120
129
|
end
|
121
130
|
|
122
|
-
def delete_user_from_chatroom(room_name, username_or_jid,
|
123
|
-
|
131
|
+
def delete_user_from_chatroom(room_name, role, username_or_jid, params={})
|
132
|
+
request = web_request('DELETE', "/chatrooms/#{room_name}/#{role}/#{username_or_jid}", params, default_headers)
|
133
|
+
(request[:status_code] == 200)
|
124
134
|
end
|
125
135
|
|
126
136
|
def get_system_properties
|
@@ -138,7 +148,6 @@ module Openfire
|
|
138
148
|
'@key' => property_name,
|
139
149
|
'@value' => value
|
140
150
|
}.to_json
|
141
|
-
|
142
151
|
request = web_request('POST', '/system/properties', payload, default_headers)
|
143
152
|
(request[:status_code] == 201)
|
144
153
|
end
|
@@ -153,7 +162,6 @@ module Openfire
|
|
153
162
|
'@key' => property_name,
|
154
163
|
'@value' => value
|
155
164
|
}.to_json
|
156
|
-
|
157
165
|
request = web_request('PUT', "/system/properties/#{property_name}", payload, default_headers)
|
158
166
|
(request[:status_code] == 200)
|
159
167
|
end
|
@@ -191,7 +199,6 @@ module Openfire
|
|
191
199
|
def get_sessions
|
192
200
|
request = web_request('GET', '/sessions', { }, default_headers)
|
193
201
|
data = request[:body]['session']
|
194
|
-
|
195
202
|
if data.is_a?(Array)
|
196
203
|
data.map { |x| Openfire::Session.new(x) }
|
197
204
|
else
|
@@ -202,7 +209,6 @@ module Openfire
|
|
202
209
|
def get_user_sessions(username)
|
203
210
|
request = web_request('GET', "/sessions/#{username}", { }, default_headers)
|
204
211
|
data = request[:body]['session']
|
205
|
-
|
206
212
|
if data.is_a?(Array)
|
207
213
|
data.map { |x| Openfire::Session.new(x) }
|
208
214
|
else
|
@@ -217,8 +223,8 @@ module Openfire
|
|
217
223
|
|
218
224
|
def send_broadcast_message(message_text)
|
219
225
|
payload = { body: message_text }.to_json
|
220
|
-
|
221
226
|
request = web_request('POST', '/messages/users', payload, default_headers)
|
227
|
+
(request[:status_code] == 201)
|
222
228
|
end
|
223
229
|
|
224
230
|
private
|
@@ -0,0 +1,26 @@
|
|
1
|
+
module Openfire
|
2
|
+
class ChatRoom
|
3
|
+
attr_accessor :room_name, :natural_name, :description, :subject, :password,
|
4
|
+
:creation_date, :modification_date, :max_users, :persistent, :publicRoom,
|
5
|
+
:registrationEnabled, :can_anyone_discover_jid, :can_occupants_change_subject,
|
6
|
+
:can_occupants_invite, :can_change_nickname, :log_enabled, :login_restricted_to_nickname,
|
7
|
+
:members_only, :moderated, :broadcast_presence_roles, :owners, :admins, :members,
|
8
|
+
:outcasts, :owner_groups, :admin_groups, :member_groups, :outcast_groups
|
9
|
+
|
10
|
+
def initialize(attributes={})
|
11
|
+
attributes.each do |k,v|
|
12
|
+
self.send("#{to_underscore(k)}=", v)
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
private
|
17
|
+
|
18
|
+
def to_underscore(val)
|
19
|
+
val.gsub(/::/, '/').
|
20
|
+
gsub(/([A-Z]+)([A-Z][a-z])/,'\1_\2').
|
21
|
+
gsub(/([a-z\d])([A-Z])/,'\1_\2').
|
22
|
+
tr("-", "_").
|
23
|
+
downcase
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
module Openfire
|
2
|
+
class UserRoster
|
3
|
+
attr_accessor :jid, :nickname, :subscription_type, :groups
|
4
|
+
|
5
|
+
def initialize(attributes={})
|
6
|
+
attributes.each do |k,v|
|
7
|
+
self.send("#{to_underscore(k)}=", v)
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
11
|
+
private
|
12
|
+
|
13
|
+
def to_underscore(val)
|
14
|
+
val.gsub(/::/, '/').
|
15
|
+
gsub(/([A-Z]+)([A-Z][a-z])/,'\1_\2').
|
16
|
+
gsub(/([a-z\d])([A-Z])/,'\1_\2').
|
17
|
+
tr("-", "_").
|
18
|
+
downcase
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
data/lib/openfire_rest_api.rb
CHANGED
@@ -1,11 +1,13 @@
|
|
1
1
|
require "openfire_rest_api/version"
|
2
2
|
|
3
3
|
require 'openfire/api'
|
4
|
+
require 'openfire/chat_room'
|
4
5
|
require 'openfire/group'
|
5
6
|
require 'openfire/session'
|
6
7
|
require 'openfire/sessions_count'
|
7
8
|
require 'openfire/system_property'
|
8
9
|
require 'openfire/user'
|
10
|
+
require 'openfire/user_roster'
|
9
11
|
|
10
12
|
# external dependencies
|
11
13
|
require 'rest-client'
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: openfire_rest_api
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 1.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Matias Hick
|
@@ -64,11 +64,13 @@ files:
|
|
64
64
|
- LICENSE.md
|
65
65
|
- README.md
|
66
66
|
- lib/openfire/api.rb
|
67
|
+
- lib/openfire/chat_room.rb
|
67
68
|
- lib/openfire/group.rb
|
68
69
|
- lib/openfire/session.rb
|
69
70
|
- lib/openfire/sessions_count.rb
|
70
71
|
- lib/openfire/system_property.rb
|
71
72
|
- lib/openfire/user.rb
|
73
|
+
- lib/openfire/user_roster.rb
|
72
74
|
- lib/openfire_rest_api.rb
|
73
75
|
- lib/openfire_rest_api/version.rb
|
74
76
|
homepage: https://github.com/unformattmh/openfire_rest_api
|