jabber_admin 1.0.4 → 1.0.5

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8b04fc09ea946409fccfdb4dd37b085e84418591c8c72f990b0e46c1ddb736e4
4
- data.tar.gz: a9a74a6d345ba34ed5e06d81eda5df5140585778b5aae2196cb5263cccba2c1b
3
+ metadata.gz: f66fd5543a21b130fc4a24d7c6d9d05659e63b956c379f7973028f7902595e81
4
+ data.tar.gz: a4e3cb834dec2a20f2d093e1588ba24167d06cdb1db2d0ce0722d0c750a39c47
5
5
  SHA512:
6
- metadata.gz: 326f9d15f3866893a7ec92de4a4475f59848321c8ff9c879eff6fd7d8d46b8cccad5a15a6c167650b3fba532b410837ba57cdc372e56869b35fae49e333def06
7
- data.tar.gz: 70733d53fb23eba46c48baf9300cefadb8cfe178e1130b8640dd014f782becc8077a4186a868c8cbed8d255f6d166955f52ae48850483e906bd6247f294ea769
6
+ metadata.gz: a9b6847f6493eee80e7086ab76a01ab4bf0f29e11fc58451d048ece7954db51bd7c349bf7e572260475ef34982d4a7cdf92fe546105bacf55189ecead923f80e
7
+ data.tar.gz: 4dd98caa90adb727d1cca90bc4b4c914c6cb744826965819cd54695535a9d729d695b135318adf9a140b06782a9bd3790961b77cae2f3fa9b4aa346765de93a6
data/CHANGELOG.md CHANGED
@@ -1,3 +1,9 @@
1
+ ### 1.0.5
2
+
3
+ * Added support for the predefined command `get_room_affiliations` (#10)
4
+ * Added the top-level helper `JabberAdmin.room_exist?` to determine whether
5
+ a room exists or not (#10)
6
+
1
7
  ### 1.0.4
2
8
 
3
9
  * Added support for the predefined command `destroy_room`
data/README.md CHANGED
@@ -115,6 +115,7 @@ Here comes a list of all supported predefined commands:
115
115
  - [unregister](https://bit.ly/2wwYnDE)
116
116
  - [unsubscribe_room](https://bit.ly/2G5zcrj)
117
117
  - [destroy_room](https://bit.ly/31CtqxB)
118
+ - [get_room_affiliations](https://bit.ly/3qI9Nyq)
118
119
 
119
120
  If you want to contribute more, we accept pull requests!
120
121
 
@@ -0,0 +1,23 @@
1
+ # frozen_string_literal: true
2
+
3
+ module JabberAdmin
4
+ module Commands
5
+ # Get room affiliations.
6
+ #
7
+ # @see https://bit.ly/3qI9Nyq
8
+ class GetRoomAffiliations
9
+ # Pass the correct data to the given callable.
10
+ #
11
+ # @param callable [Proc, #call] the callable to call
12
+ # @param room [String] room JID (eg. +room1@conference.localhost+)
13
+ def self.call(callable, room:)
14
+ name, service = room.split('@')
15
+ res = callable.call('get_room_affiliations', check_res_body: false,
16
+ name: name,
17
+ service: service)
18
+
19
+ res.body ? JSON.parse(res.body) : nil
20
+ end
21
+ end
22
+ end
23
+ end
@@ -4,7 +4,7 @@
4
4
  module JabberAdmin
5
5
  # The version constant of the gem. Increase this value
6
6
  # in case of a gem release.
7
- VERSION = '1.0.4'
7
+ VERSION = '1.0.5'
8
8
 
9
9
  class << self
10
10
  # Returns the version of gem as a string.
data/lib/jabber_admin.rb CHANGED
@@ -112,6 +112,21 @@ module JabberAdmin
112
112
  proc { |*args| ApiCall.send(method, *args) }
113
113
  end
114
114
 
115
+ # Determine if a room exists. This is a convenience method for the
116
+ # +JabberAdmin::Commands::GetRoomAffiliations+ command, which can be used
117
+ # to reliably determine whether a room exists or not.
118
+ #
119
+ # @param room [String] the name of the room to check
120
+ # @return [Boolean] whether the room exists or not
121
+ def self.room_exist?(room)
122
+ get_room_affiliations!(room: room)
123
+ true
124
+ rescue JabberAdmin::CommandError => e
125
+ raise e unless /room does not exist/.match? e.response.body
126
+
127
+ false
128
+ end
129
+
115
130
  # We support all methods if you ask for. This is our dynamic command approach
116
131
  # here to support predefined and custom commands in the same namespace.
117
132
  #
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jabber_admin
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.4
4
+ version: 1.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Henning Vogt
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: exe
11
11
  cert_chain: []
12
- date: 2021-11-11 00:00:00.000000000 Z
12
+ date: 2022-01-20 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activesupport
@@ -260,6 +260,7 @@ files:
260
260
  - lib/jabber_admin/commands/create_room.rb
261
261
  - lib/jabber_admin/commands/create_room_with_opts.rb
262
262
  - lib/jabber_admin/commands/destroy_room.rb
263
+ - lib/jabber_admin/commands/get_room_affiliations.rb
263
264
  - lib/jabber_admin/commands/get_vcard.rb
264
265
  - lib/jabber_admin/commands/muc_register_nick.rb
265
266
  - lib/jabber_admin/commands/register.rb
@@ -298,7 +299,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
298
299
  - !ruby/object:Gem::Version
299
300
  version: '0'
300
301
  requirements: []
301
- rubygems_version: 3.2.21
302
+ rubygems_version: 3.0.9
302
303
  signing_key:
303
304
  specification_version: 4
304
305
  summary: Library for the ejabberd RESTful admin API