rocketchat 0.0.1 → 0.0.2
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/.gitignore +1 -0
- data/.rubocop.yml +3 -0
- data/.travis.yml +10 -0
- data/README.md +5 -0
- data/lib/rocket_chat/gem_version.rb +1 -1
- data/lib/rocket_chat/info.rb +2 -2
- data/lib/rocket_chat/request_helper.rb +5 -1
- data/lib/rocket_chat/session.rb +11 -0
- data/lib/rocket_chat/token.rb +2 -2
- data/lib/rocket_chat/user.rb +77 -0
- data/lib/rocketchat.rb +1 -0
- data/rocketchat.gemspec +1 -1
- metadata +5 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9be0e052345a62ea82a06daeaa3c3ec9d109ef5f
|
4
|
+
data.tar.gz: c7ccbdd37e1705558d97c3f010b86755d012f97e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b3f717e2a4455ae459ccba9599074c735f1dd54dd3931135fef6e06ef40f09d50a3c50d707d3eeea58f59c868875deae7569f39ac773943d9d2c021d243bb177
|
7
|
+
data.tar.gz: 845f9454268a887c7d764ce655a0b89e9c5fa89f50b61e0ca569121f380f215e04585c3b7dcd25521addebff4dc9eadd91e971fdf05f581d78874f8c498272d5
|
data/.gitignore
CHANGED
data/.rubocop.yml
CHANGED
data/.travis.yml
ADDED
data/README.md
CHANGED
@@ -1,3 +1,7 @@
|
|
1
|
+
[](https://travis-ci.org/abrom/rocketchat-ruby)
|
2
|
+
[](https://codeclimate.com/github/abrom/rocketchat-ruby)
|
3
|
+
[](#)
|
4
|
+
|
1
5
|
# Rocket.Chat REST API for Ruby
|
2
6
|
|
3
7
|
This is a gem wrapping the v1 REST API for [Rocket.Chat](https://rocket.chat/).
|
@@ -29,6 +33,7 @@ This gem supports the following Rocket.Chat APIs (Tested against Rocket.Chat v0.
|
|
29
33
|
#### Authentication
|
30
34
|
* /api/v1/login
|
31
35
|
* /api/v1/logout
|
36
|
+
* /api/v1/me
|
32
37
|
|
33
38
|
|
34
39
|
## Usage
|
data/lib/rocket_chat/info.rb
CHANGED
@@ -7,7 +7,7 @@ module RocketChat
|
|
7
7
|
attr_reader :data
|
8
8
|
|
9
9
|
#
|
10
|
-
# @param [Hash] data Raw
|
10
|
+
# @param [Hash] data Raw info data
|
11
11
|
#
|
12
12
|
def initialize(data)
|
13
13
|
@data = data.dup.freeze
|
@@ -15,7 +15,7 @@ module RocketChat
|
|
15
15
|
|
16
16
|
# Rocket.Chat version
|
17
17
|
def version
|
18
|
-
|
18
|
+
data['version']
|
19
19
|
end
|
20
20
|
|
21
21
|
def inspect
|
@@ -1,3 +1,5 @@
|
|
1
|
+
require 'openssl'
|
2
|
+
|
1
3
|
module RocketChat
|
2
4
|
#
|
3
5
|
# Rocket.Chat HTTP request helper
|
@@ -20,6 +22,8 @@ module RocketChat
|
|
20
22
|
|
21
23
|
def request_json(path, options = {})
|
22
24
|
fail_unless_ok = options.delete :fail_unless_ok
|
25
|
+
skip_status_check = options.delete :skip_status_check
|
26
|
+
|
23
27
|
response = request path, options
|
24
28
|
|
25
29
|
if fail_unless_ok && !response.is_a?(Net::HTTPOK)
|
@@ -27,7 +31,7 @@ module RocketChat
|
|
27
31
|
end
|
28
32
|
|
29
33
|
response_json = JSON.parse(response.body)
|
30
|
-
unless response_json['status'] == 'success'
|
34
|
+
unless skip_status_check || response_json['status'] == 'success'
|
31
35
|
raise RocketChat::StatusError, response_json['message']
|
32
36
|
end
|
33
37
|
|
data/lib/rocket_chat/session.rb
CHANGED
@@ -26,5 +26,16 @@ module RocketChat
|
|
26
26
|
server.request_json('/api/v1/logout', method: :post, token: token)
|
27
27
|
nil
|
28
28
|
end
|
29
|
+
|
30
|
+
#
|
31
|
+
# me REST API
|
32
|
+
# @return [User]
|
33
|
+
# @raise [HTTPError, StatusError]
|
34
|
+
#
|
35
|
+
def me
|
36
|
+
response = server.request_json('/api/v1/me', method: :get, token: token, skip_status_check: true)
|
37
|
+
raise RocketChat::StatusError, 'Failed to fetch profile' unless response['success']
|
38
|
+
User.new response
|
39
|
+
end
|
29
40
|
end
|
30
41
|
end
|
data/lib/rocket_chat/token.rb
CHANGED
@@ -0,0 +1,77 @@
|
|
1
|
+
module RocketChat
|
2
|
+
#
|
3
|
+
# Rocket.Chat User
|
4
|
+
#
|
5
|
+
class User
|
6
|
+
# Raw user data
|
7
|
+
attr_reader :data
|
8
|
+
|
9
|
+
#
|
10
|
+
# @param [Hash] data Raw user data
|
11
|
+
#
|
12
|
+
def initialize(data)
|
13
|
+
@data = Util.stringify_hash_keys data
|
14
|
+
end
|
15
|
+
|
16
|
+
# User ID
|
17
|
+
def id
|
18
|
+
data['_id']
|
19
|
+
end
|
20
|
+
|
21
|
+
# User name
|
22
|
+
def name
|
23
|
+
data['name']
|
24
|
+
end
|
25
|
+
|
26
|
+
# User emails
|
27
|
+
def emails
|
28
|
+
data['emails'] || []
|
29
|
+
end
|
30
|
+
|
31
|
+
# User email
|
32
|
+
def email
|
33
|
+
emails.first && emails.first['address']
|
34
|
+
end
|
35
|
+
|
36
|
+
# User email verified
|
37
|
+
def email_verified?
|
38
|
+
emails.first && emails.first['verified']
|
39
|
+
end
|
40
|
+
|
41
|
+
# User status
|
42
|
+
def status
|
43
|
+
data['status']
|
44
|
+
end
|
45
|
+
|
46
|
+
# User connection status
|
47
|
+
def status_connection
|
48
|
+
data['statusConnection']
|
49
|
+
end
|
50
|
+
|
51
|
+
# User username
|
52
|
+
def username
|
53
|
+
data['username']
|
54
|
+
end
|
55
|
+
|
56
|
+
# User UTC offset
|
57
|
+
def utc_offset
|
58
|
+
data['utcOffset']
|
59
|
+
end
|
60
|
+
|
61
|
+
# User active
|
62
|
+
def active?
|
63
|
+
data['active']
|
64
|
+
end
|
65
|
+
|
66
|
+
def inspect
|
67
|
+
format(
|
68
|
+
'#<%s:0x%p @id="%s" @username="%s" @active="%s">',
|
69
|
+
self.class.name,
|
70
|
+
object_id,
|
71
|
+
id,
|
72
|
+
username,
|
73
|
+
active?
|
74
|
+
)
|
75
|
+
end
|
76
|
+
end
|
77
|
+
end
|
data/lib/rocketchat.rb
CHANGED
data/rocketchat.gemspec
CHANGED
@@ -23,7 +23,7 @@ Gem::Specification.new do |spec|
|
|
23
23
|
spec.add_development_dependency 'bundler', '~> 1.11'
|
24
24
|
spec.add_development_dependency 'rake', '~> 10.0'
|
25
25
|
spec.add_development_dependency 'rspec', '~> 3.0'
|
26
|
-
spec.add_development_dependency 'webmock', '~>
|
26
|
+
spec.add_development_dependency 'webmock', '~> 2.3'
|
27
27
|
spec.add_development_dependency 'yard', '~> 0.8.7.6'
|
28
28
|
spec.add_development_dependency 'rubocop', '~> 0.48.1'
|
29
29
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rocketchat
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- int512
|
@@ -59,14 +59,14 @@ dependencies:
|
|
59
59
|
requirements:
|
60
60
|
- - "~>"
|
61
61
|
- !ruby/object:Gem::Version
|
62
|
-
version: '
|
62
|
+
version: '2.3'
|
63
63
|
type: :development
|
64
64
|
prerelease: false
|
65
65
|
version_requirements: !ruby/object:Gem::Requirement
|
66
66
|
requirements:
|
67
67
|
- - "~>"
|
68
68
|
- !ruby/object:Gem::Version
|
69
|
-
version: '
|
69
|
+
version: '2.3'
|
70
70
|
- !ruby/object:Gem::Dependency
|
71
71
|
name: yard
|
72
72
|
requirement: !ruby/object:Gem::Requirement
|
@@ -106,6 +106,7 @@ extra_rdoc_files: []
|
|
106
106
|
files:
|
107
107
|
- ".gitignore"
|
108
108
|
- ".rubocop.yml"
|
109
|
+
- ".travis.yml"
|
109
110
|
- Gemfile
|
110
111
|
- LICENSE
|
111
112
|
- README.md
|
@@ -118,6 +119,7 @@ files:
|
|
118
119
|
- lib/rocket_chat/server.rb
|
119
120
|
- lib/rocket_chat/session.rb
|
120
121
|
- lib/rocket_chat/token.rb
|
122
|
+
- lib/rocket_chat/user.rb
|
121
123
|
- lib/rocket_chat/util.rb
|
122
124
|
- lib/rocketchat.rb
|
123
125
|
- rocketchat.gemspec
|