jabber_admin 0.1.4 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/.editorconfig +30 -0
- data/.gitignore +4 -2
- data/.rubocop.yml +33 -0
- data/.simplecov +3 -0
- data/.travis.yml +7 -3
- data/.yardopts +4 -0
- data/CHANGELOG.md +30 -0
- data/Gemfile +4 -2
- data/Makefile +100 -0
- data/README.md +142 -22
- data/Rakefile +5 -3
- data/bin/console +4 -3
- data/docker-compose.yml +15 -0
- data/jabber_admin.gemspec +22 -15
- data/lib/jabber_admin.rb +100 -34
- data/lib/jabber_admin/api_call.rb +106 -20
- data/lib/jabber_admin/commands.rb +6 -5
- data/lib/jabber_admin/commands/ban_account.rb +11 -10
- data/lib/jabber_admin/commands/create_room.rb +15 -10
- data/lib/jabber_admin/commands/create_room_with_opts.rb +20 -14
- data/lib/jabber_admin/commands/muc_register_nick.rb +26 -0
- data/lib/jabber_admin/commands/register.rb +16 -11
- data/lib/jabber_admin/commands/registered_users.rb +8 -6
- data/lib/jabber_admin/commands/restart.rb +8 -5
- data/lib/jabber_admin/commands/send_direct_invitation.rb +19 -16
- data/lib/jabber_admin/commands/send_stanza.rb +12 -10
- data/lib/jabber_admin/commands/send_stanza_c2s.rb +28 -0
- data/lib/jabber_admin/commands/set_nickname.rb +22 -0
- data/lib/jabber_admin/commands/set_presence.rb +37 -0
- data/lib/jabber_admin/commands/set_room_affiliation.rb +17 -12
- data/lib/jabber_admin/commands/subscribe_room.rb +19 -12
- data/lib/jabber_admin/commands/unregister.rb +13 -7
- data/lib/jabber_admin/commands/unsubscribe_room.rb +10 -7
- data/lib/jabber_admin/configuration.rb +6 -1
- data/lib/jabber_admin/exceptions.rb +40 -0
- data/lib/jabber_admin/version.rb +3 -1
- metadata +85 -16
- data/lib/jabber_admin/initializer.rb +0 -6
@@ -2,14 +2,17 @@
|
|
2
2
|
|
3
3
|
module JabberAdmin
|
4
4
|
module Commands
|
5
|
-
|
6
|
-
#
|
7
|
-
# https://
|
5
|
+
# Subscribe to a MUC conference, via the mucsub feature.
|
6
|
+
#
|
7
|
+
# @see https://bit.ly/2G5zcrj
|
8
8
|
class UnsubscribeRoom
|
9
|
-
#
|
10
|
-
#
|
11
|
-
|
12
|
-
|
9
|
+
# Pass the correct data to the given callable.
|
10
|
+
#
|
11
|
+
# @param callable [Proc, #call] the callable to call
|
12
|
+
# @param user [String] user JID w/ resource (eg. +tom@localhost/dummy+)
|
13
|
+
# @param room [String] room JID (eg. +room1@conference.localhost+)
|
14
|
+
def self.call(callable, user:, room:)
|
15
|
+
callable.call('unsubscribe_room', user: user, room: room)
|
13
16
|
end
|
14
17
|
end
|
15
18
|
end
|
@@ -1,7 +1,12 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
module JabberAdmin
|
4
|
+
# A JabberAdmin configuration definition. It is directly accessible via
|
5
|
+
# +JabberAdmin.configuration+ or
|
6
|
+
# +JabberAdmin.configure(&block(configuration))+ in a tapped variant.
|
7
|
+
#
|
8
|
+
# See the +JabberAdmin+ documentation for further details.
|
4
9
|
class Configuration
|
5
|
-
attr_accessor :
|
10
|
+
attr_accessor :username, :password, :url
|
6
11
|
end
|
7
12
|
end
|
@@ -0,0 +1,40 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module JabberAdmin
|
4
|
+
# The base exception which all other exceptions inherit. In case you want to
|
5
|
+
# use our error handling with the bang variants, you can rescue all
|
6
|
+
# exceptions like this:
|
7
|
+
#
|
8
|
+
# begin
|
9
|
+
# JabberAdmin.COMMAND!
|
10
|
+
# rescue JabberAdmin::Error => err
|
11
|
+
# # Do your error handling here
|
12
|
+
# end
|
13
|
+
class Error < StandardError
|
14
|
+
attr_accessor :response
|
15
|
+
|
16
|
+
# Create a new exception.
|
17
|
+
#
|
18
|
+
# @param msg [String] the excpetion message
|
19
|
+
# @param response [RestClient::Response] the response when available
|
20
|
+
def initialize(msg, response = nil)
|
21
|
+
@response = response
|
22
|
+
super(msg)
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
# This exception is raised when the request was denied due to premission
|
27
|
+
# issues or a general unavaliability of the command on the REST API. This
|
28
|
+
# simply means the response code from ejabberd was not 200 OK.
|
29
|
+
class RequestError < Error; end
|
30
|
+
|
31
|
+
# This exception is raised when the response from the ejabberd REST API
|
32
|
+
# indicated that the status of the command was not successful. In this case
|
33
|
+
# the response body includes a one (1). In case everything was fine, it
|
34
|
+
# includes a zero (0).
|
35
|
+
class CommandError < Error; end
|
36
|
+
|
37
|
+
# This exception is raised when we send an unknown command to the REST API.
|
38
|
+
# It will respond with a 404 status code in this case.
|
39
|
+
class UnknownCommandError < Error; end
|
40
|
+
end
|
data/lib/jabber_admin/version.rb
CHANGED
metadata
CHANGED
@@ -1,49 +1,50 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jabber_admin
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Henning Vogt
|
8
|
+
- Hermann Mayer
|
8
9
|
autorequire:
|
9
10
|
bindir: exe
|
10
11
|
cert_chain: []
|
11
|
-
date: 2018-
|
12
|
+
date: 2018-05-14 00:00:00.000000000 Z
|
12
13
|
dependencies:
|
13
14
|
- !ruby/object:Gem::Dependency
|
14
|
-
name:
|
15
|
+
name: activesupport
|
15
16
|
requirement: !ruby/object:Gem::Requirement
|
16
17
|
requirements:
|
17
|
-
- - "~>"
|
18
|
-
- !ruby/object:Gem::Version
|
19
|
-
version: '2.0'
|
20
18
|
- - ">="
|
21
19
|
- !ruby/object:Gem::Version
|
22
|
-
version: 2.
|
20
|
+
version: 4.2.5
|
23
21
|
type: :runtime
|
24
22
|
prerelease: false
|
25
23
|
version_requirements: !ruby/object:Gem::Requirement
|
26
24
|
requirements:
|
27
|
-
- - "~>"
|
28
|
-
- !ruby/object:Gem::Version
|
29
|
-
version: '2.0'
|
30
25
|
- - ">="
|
31
26
|
- !ruby/object:Gem::Version
|
32
|
-
version: 2.
|
27
|
+
version: 4.2.5
|
33
28
|
- !ruby/object:Gem::Dependency
|
34
|
-
name:
|
29
|
+
name: rest-client
|
35
30
|
requirement: !ruby/object:Gem::Requirement
|
36
31
|
requirements:
|
32
|
+
- - "~>"
|
33
|
+
- !ruby/object:Gem::Version
|
34
|
+
version: '2.0'
|
37
35
|
- - ">="
|
38
36
|
- !ruby/object:Gem::Version
|
39
|
-
version:
|
37
|
+
version: 2.0.2
|
40
38
|
type: :runtime
|
41
39
|
prerelease: false
|
42
40
|
version_requirements: !ruby/object:Gem::Requirement
|
43
41
|
requirements:
|
42
|
+
- - "~>"
|
43
|
+
- !ruby/object:Gem::Version
|
44
|
+
version: '2.0'
|
44
45
|
- - ">="
|
45
46
|
- !ruby/object:Gem::Version
|
46
|
-
version:
|
47
|
+
version: 2.0.2
|
47
48
|
- !ruby/object:Gem::Dependency
|
48
49
|
name: bundler
|
49
50
|
requirement: !ruby/object:Gem::Requirement
|
@@ -86,6 +87,34 @@ dependencies:
|
|
86
87
|
- - "~>"
|
87
88
|
- !ruby/object:Gem::Version
|
88
89
|
version: '3.0'
|
90
|
+
- !ruby/object:Gem::Dependency
|
91
|
+
name: rubocop
|
92
|
+
requirement: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ">="
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
97
|
+
type: :development
|
98
|
+
prerelease: false
|
99
|
+
version_requirements: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - ">="
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '0'
|
104
|
+
- !ruby/object:Gem::Dependency
|
105
|
+
name: rubocop-rspec
|
106
|
+
requirement: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - ">="
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '0'
|
111
|
+
type: :development
|
112
|
+
prerelease: false
|
113
|
+
version_requirements: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - ">="
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '0'
|
89
118
|
- !ruby/object:Gem::Dependency
|
90
119
|
name: simplecov
|
91
120
|
requirement: !ruby/object:Gem::Requirement
|
@@ -100,18 +129,53 @@ dependencies:
|
|
100
129
|
- - "~>"
|
101
130
|
- !ruby/object:Gem::Version
|
102
131
|
version: '0.15'
|
132
|
+
- !ruby/object:Gem::Dependency
|
133
|
+
name: vcr
|
134
|
+
requirement: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - "~>"
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: '3.0'
|
139
|
+
type: :development
|
140
|
+
prerelease: false
|
141
|
+
version_requirements: !ruby/object:Gem::Requirement
|
142
|
+
requirements:
|
143
|
+
- - "~>"
|
144
|
+
- !ruby/object:Gem::Version
|
145
|
+
version: '3.0'
|
146
|
+
- !ruby/object:Gem::Dependency
|
147
|
+
name: webmock
|
148
|
+
requirement: !ruby/object:Gem::Requirement
|
149
|
+
requirements:
|
150
|
+
- - "~>"
|
151
|
+
- !ruby/object:Gem::Version
|
152
|
+
version: '3.0'
|
153
|
+
type: :development
|
154
|
+
prerelease: false
|
155
|
+
version_requirements: !ruby/object:Gem::Requirement
|
156
|
+
requirements:
|
157
|
+
- - "~>"
|
158
|
+
- !ruby/object:Gem::Version
|
159
|
+
version: '3.0'
|
103
160
|
description: Library for the ejabberd RESTful admin API
|
104
161
|
email:
|
105
162
|
- henning.vogt@hausgold.de
|
163
|
+
- hermann.mayer@hausgold.de
|
106
164
|
executables: []
|
107
165
|
extensions: []
|
108
166
|
extra_rdoc_files: []
|
109
167
|
files:
|
168
|
+
- ".editorconfig"
|
110
169
|
- ".gitignore"
|
111
170
|
- ".rspec"
|
171
|
+
- ".rubocop.yml"
|
172
|
+
- ".simplecov"
|
112
173
|
- ".travis.yml"
|
174
|
+
- ".yardopts"
|
175
|
+
- CHANGELOG.md
|
113
176
|
- Gemfile
|
114
177
|
- LICENSE
|
178
|
+
- Makefile
|
115
179
|
- README.md
|
116
180
|
- Rakefile
|
117
181
|
- bin/console
|
@@ -119,6 +183,7 @@ files:
|
|
119
183
|
- doc/assets/logo.png
|
120
184
|
- doc/assets/project.png
|
121
185
|
- doc/assets/project.xcf
|
186
|
+
- docker-compose.yml
|
122
187
|
- jabber_admin.gemspec
|
123
188
|
- lib/jabber_admin.rb
|
124
189
|
- lib/jabber_admin/api_call.rb
|
@@ -126,17 +191,21 @@ files:
|
|
126
191
|
- lib/jabber_admin/commands/ban_account.rb
|
127
192
|
- lib/jabber_admin/commands/create_room.rb
|
128
193
|
- lib/jabber_admin/commands/create_room_with_opts.rb
|
194
|
+
- lib/jabber_admin/commands/muc_register_nick.rb
|
129
195
|
- lib/jabber_admin/commands/register.rb
|
130
196
|
- lib/jabber_admin/commands/registered_users.rb
|
131
197
|
- lib/jabber_admin/commands/restart.rb
|
132
198
|
- lib/jabber_admin/commands/send_direct_invitation.rb
|
133
199
|
- lib/jabber_admin/commands/send_stanza.rb
|
200
|
+
- lib/jabber_admin/commands/send_stanza_c2s.rb
|
201
|
+
- lib/jabber_admin/commands/set_nickname.rb
|
202
|
+
- lib/jabber_admin/commands/set_presence.rb
|
134
203
|
- lib/jabber_admin/commands/set_room_affiliation.rb
|
135
204
|
- lib/jabber_admin/commands/subscribe_room.rb
|
136
205
|
- lib/jabber_admin/commands/unregister.rb
|
137
206
|
- lib/jabber_admin/commands/unsubscribe_room.rb
|
138
207
|
- lib/jabber_admin/configuration.rb
|
139
|
-
- lib/jabber_admin/
|
208
|
+
- lib/jabber_admin/exceptions.rb
|
140
209
|
- lib/jabber_admin/version.rb
|
141
210
|
homepage: https://github.com/hausgold/jabber_admin
|
142
211
|
licenses:
|
@@ -159,7 +228,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
159
228
|
version: '0'
|
160
229
|
requirements: []
|
161
230
|
rubyforge_project:
|
162
|
-
rubygems_version: 2.6
|
231
|
+
rubygems_version: 2.7.6
|
163
232
|
signing_key:
|
164
233
|
specification_version: 4
|
165
234
|
summary: Library for the ejabberd RESTful admin API
|