rest_ejabberd 0.0.1 → 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
data/README.md
CHANGED
@@ -1,9 +1,21 @@
|
|
1
1
|
# RestEjabberd
|
2
2
|
|
3
|
-
Ruby interface to ejabberd's mod_restful
|
3
|
+
Ruby interface to ejabberd's [https://github.com/jadahl/mod_restful](mod_restful)
|
4
4
|
|
5
5
|
This allows to:
|
6
6
|
|
7
7
|
* create a user
|
8
8
|
* delete a user
|
9
|
+
* check existance
|
9
10
|
* change password
|
11
|
+
|
12
|
+
```ruby
|
13
|
+
client = RestEjabberd.new secret: 'shhhhh', host: 'chat.server.com/api/'
|
14
|
+
client.register 'me@localhost', '123123'
|
15
|
+
client.is_registered? 'me@localhost'
|
16
|
+
#=> true
|
17
|
+
client.change_password 'me@localhost', '123123', 'asdasd'
|
18
|
+
#=> true
|
19
|
+
client.unregister 'me@localhost', 'asdasd'
|
20
|
+
#=> true
|
21
|
+
```
|
data/lib/rest_ejabberd.rb
CHANGED
@@ -10,16 +10,21 @@ class RestEjabberd
|
|
10
10
|
@client.set_debug_output $stdout if ENV['DEBUG']
|
11
11
|
end
|
12
12
|
|
13
|
-
def register(username, password
|
13
|
+
def register(username, password)
|
14
|
+
check_for_host username
|
14
15
|
url = @api + "admin"
|
16
|
+
username, host = username.split('@')
|
17
|
+
|
15
18
|
request = prepare_request(Net::HTTP::Post.new(url.request_uri))
|
16
19
|
request.body = command('register', username, host, password)
|
17
20
|
|
18
21
|
JSON.parse @client.request(request).body
|
19
22
|
end
|
20
23
|
|
21
|
-
def unregister(username, password
|
24
|
+
def unregister(username, password)
|
25
|
+
check_for_host username
|
22
26
|
url = @api + "admin"
|
27
|
+
username, host = username.split('@')
|
23
28
|
request = prepare_request(Net::HTTP::Post.new(url.request_uri))
|
24
29
|
request.body = command('unregister', username, host)
|
25
30
|
|
@@ -27,15 +32,19 @@ class RestEjabberd
|
|
27
32
|
response.has_key?("ok")
|
28
33
|
end
|
29
34
|
|
30
|
-
def change_password(username, old_password, new_password
|
35
|
+
def change_password(username, old_password, new_password)
|
36
|
+
check_for_host username
|
31
37
|
url = @api + 'register/change_password'
|
38
|
+
username, host = username.split('@')
|
32
39
|
request = prepare_request(Net::HTTP::Post.new(url.request_uri))
|
33
40
|
request.body = change_password_command(username, host, old_password, new_password)
|
34
41
|
|
35
42
|
@client.request(request).body == '"ok"'
|
36
43
|
end
|
37
44
|
|
38
|
-
def is_registered?(username
|
45
|
+
def is_registered?(username)
|
46
|
+
check_for_host username
|
47
|
+
username, host = username.split('@')
|
39
48
|
url = @api + "register/is_registered?username=#{username}&host=#{host}&key=#{@secret}"
|
40
49
|
request = prepare_request(Net::HTTP::Get.new(url.request_uri))
|
41
50
|
@client.request(request).body == 'true'
|
@@ -43,6 +52,10 @@ class RestEjabberd
|
|
43
52
|
|
44
53
|
private
|
45
54
|
|
55
|
+
def check_for_host(username)
|
56
|
+
raise IndexError unless username.include?("@")
|
57
|
+
end
|
58
|
+
|
46
59
|
def command(command, *args)
|
47
60
|
{
|
48
61
|
key: @secret,
|
@@ -52,7 +65,6 @@ class RestEjabberd
|
|
52
65
|
end
|
53
66
|
|
54
67
|
def change_password_command(username, host, old_password, new_password)
|
55
|
-
# { "key":"secret", "username":"t1", "host":"localhost", "old_password":"hejhej", "new_password":"sansan" }
|
56
68
|
{
|
57
69
|
key: @secret,
|
58
70
|
username: username,
|
data/rest_ejabberd.gemspec
CHANGED
@@ -30,7 +30,7 @@ http_interactions:
|
|
30
30
|
encoding: US-ASCII
|
31
31
|
string: "{\"ok\":\"User test@localhost successfully registered\"}"
|
32
32
|
http_version: "1.1"
|
33
|
-
recorded_at:
|
33
|
+
recorded_at: Fri, 06 Jul 2012 15:25:32 GMT
|
34
34
|
- request:
|
35
35
|
method: post
|
36
36
|
uri: http://localhost:8088/api/register/change_password
|
@@ -61,7 +61,7 @@ http_interactions:
|
|
61
61
|
encoding: US-ASCII
|
62
62
|
string: "\"ok\""
|
63
63
|
http_version: "1.1"
|
64
|
-
recorded_at:
|
64
|
+
recorded_at: Fri, 06 Jul 2012 15:25:32 GMT
|
65
65
|
- request:
|
66
66
|
method: get
|
67
67
|
uri: http://localhost:8088/api/register/is_registered?username=test&host=localhost&key=secret
|
@@ -92,7 +92,7 @@ http_interactions:
|
|
92
92
|
encoding: US-ASCII
|
93
93
|
string: "true"
|
94
94
|
http_version: "1.1"
|
95
|
-
recorded_at:
|
95
|
+
recorded_at: Fri, 06 Jul 2012 15:25:32 GMT
|
96
96
|
- request:
|
97
97
|
method: post
|
98
98
|
uri: http://localhost:8088/api/admin
|
@@ -123,7 +123,7 @@ http_interactions:
|
|
123
123
|
encoding: US-ASCII
|
124
124
|
string: "{\"ok\":\"\"}"
|
125
125
|
http_version: "1.1"
|
126
|
-
recorded_at:
|
126
|
+
recorded_at: Fri, 06 Jul 2012 15:25:32 GMT
|
127
127
|
- request:
|
128
128
|
method: get
|
129
129
|
uri: http://localhost:8088/api/register/is_registered?username=test&host=localhost&key=secret
|
@@ -154,5 +154,5 @@ http_interactions:
|
|
154
154
|
encoding: US-ASCII
|
155
155
|
string: "false"
|
156
156
|
http_version: "1.1"
|
157
|
-
recorded_at:
|
157
|
+
recorded_at: Fri, 06 Jul 2012 15:25:32 GMT
|
158
158
|
recorded_with: VCR 2.1.1
|
@@ -30,7 +30,7 @@ http_interactions:
|
|
30
30
|
encoding: US-ASCII
|
31
31
|
string: "{\"ok\":\"User test@localhost successfully registered\"}"
|
32
32
|
http_version: "1.1"
|
33
|
-
recorded_at:
|
33
|
+
recorded_at: Fri, 06 Jul 2012 15:01:50 GMT
|
34
34
|
- request:
|
35
35
|
method: post
|
36
36
|
uri: http://localhost:8088/api/admin
|
@@ -61,5 +61,5 @@ http_interactions:
|
|
61
61
|
encoding: US-ASCII
|
62
62
|
string: "{\"ok\":\"\"}"
|
63
63
|
http_version: "1.1"
|
64
|
-
recorded_at:
|
64
|
+
recorded_at: Fri, 06 Jul 2012 15:01:50 GMT
|
65
65
|
recorded_with: VCR 2.1.1
|
data/test/rest_ejabberd_test.rb
CHANGED
@@ -3,10 +3,16 @@ require 'test_helper'
|
|
3
3
|
describe RestEjabberd do
|
4
4
|
before do
|
5
5
|
@client = RestEjabberd.new secret: 'secret'
|
6
|
-
@username = 'test'
|
6
|
+
@username = 'test@localhost'
|
7
7
|
@password = 'password'
|
8
8
|
end
|
9
9
|
|
10
|
+
it 'should raise an IndexError if the username is malformed' do
|
11
|
+
assert_raises IndexError do
|
12
|
+
@client.is_registered?('wrong')
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
10
16
|
it 'should register and unregister a user' do
|
11
17
|
VCR.use_cassette("create and remove a user") do
|
12
18
|
response = @client.register @username, @password
|
@@ -20,10 +26,10 @@ describe RestEjabberd do
|
|
20
26
|
VCR.use_cassette("change user password") do
|
21
27
|
@client.register @username, @password
|
22
28
|
|
23
|
-
assert @client.change_password
|
24
|
-
assert @client.is_registered?(@username
|
25
|
-
assert @client.unregister
|
26
|
-
assert !@client.is_registered?(@username
|
29
|
+
assert @client.change_password(@username, @password, 'newpassword')
|
30
|
+
assert @client.is_registered?(@username)
|
31
|
+
assert @client.unregister(@username, @password)
|
32
|
+
assert !@client.is_registered?(@username)
|
27
33
|
end
|
28
34
|
end
|
29
35
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rest_ejabberd
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-07-
|
12
|
+
date: 2012-07-06 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: minitest
|