openfire_rest_api 0.2.1 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|