mattermost-api4-ruby 0.0.7 → 0.0.8
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 +12 -1
- data/lib/mattermost/client.rb +13 -26
- data/lib/mattermost/request.rb +47 -2
- data/mattermost-api4-ruby.gemspec +4 -2
- metadata +33 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4d2172dab7043981ddc6e9f23a1252c603b708b9
|
4
|
+
data.tar.gz: 977042fdc8a7bdc73582f35033fc44cde43129f4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0b5df1bb0875c5cbbd43289c090c2a5446209d2ba03182f7e8bfa8ea6ed3ed157cb8355c1acdcf8790369aebddf7fe2574c4d175b7b0666f239b2b6c552eb821
|
7
|
+
data.tar.gz: e77fadbea409b42f6d9a1b2c30e926fdad9424725cefe27fa87c2bc5dcab45abf7304528c702ecdb65f324640ededded48dd37630fb98ec3a2b759f81b6f4929
|
data/CHANGELOG.md
CHANGED
@@ -1,6 +1,17 @@
|
|
1
1
|
# Change Log
|
2
2
|
|
3
|
-
## [v0.0.
|
3
|
+
## [v0.0.8](https://github.com/maruTA-bis5/mattermost-api4-ruby/tree/v0.0.8) (2018-01-31)
|
4
|
+
[Full Changelog](https://github.com/maruTA-bis5/mattermost-api4-ruby/compare/v0.0.7...v0.0.8)
|
5
|
+
|
6
|
+
**Implemented enhancements:**
|
7
|
+
|
8
|
+
- Use Faraday as internal HTTP client [\#6](https://github.com/maruTA-bis5/mattermost-api4-ruby/issues/6)
|
9
|
+
|
10
|
+
**Fixed bugs:**
|
11
|
+
|
12
|
+
- Client\#logout did not call logout api [\#13](https://github.com/maruTA-bis5/mattermost-api4-ruby/issues/13)
|
13
|
+
|
14
|
+
## [v0.0.7](https://github.com/maruTA-bis5/mattermost-api4-ruby/tree/v0.0.7) (2018-01-23)
|
4
15
|
[Full Changelog](https://github.com/maruTA-bis5/mattermost-api4-ruby/compare/v0.0.6...v0.0.7)
|
5
16
|
|
6
17
|
**Fixed bugs:**
|
data/lib/mattermost/client.rb
CHANGED
@@ -1,4 +1,3 @@
|
|
1
|
-
require 'httparty'
|
2
1
|
require_relative 'endpoint'
|
3
2
|
require_relative 'request'
|
4
3
|
require_relative 'websocket_client'
|
@@ -6,15 +5,21 @@ require_relative 'websocket_client'
|
|
6
5
|
module Mattermost
|
7
6
|
|
8
7
|
class Client
|
9
|
-
|
8
|
+
extend Gem::Deprecate
|
10
9
|
include Mattermost::Endpoint
|
11
10
|
include Mattermost::Request
|
12
11
|
|
13
|
-
attr_accessor :server, :token
|
12
|
+
attr_accessor :server, :token, :headers
|
13
|
+
|
14
|
+
# *DEPRECATED* I'll remove this method soon
|
15
|
+
def base_uri
|
16
|
+
"#{server}/api/v4"
|
17
|
+
end
|
18
|
+
deprecate :base_uri, :none, 2018, 1
|
14
19
|
|
15
20
|
def initialize(server)
|
16
21
|
self.server = server
|
17
|
-
self.
|
22
|
+
self.headers = {:Accept => "application/json"}
|
18
23
|
end
|
19
24
|
|
20
25
|
def login(username, password)
|
@@ -24,6 +29,7 @@ module Mattermost
|
|
24
29
|
end
|
25
30
|
|
26
31
|
def logout
|
32
|
+
post("/users/logout")
|
27
33
|
self.token = nil
|
28
34
|
update_token
|
29
35
|
end
|
@@ -39,7 +45,7 @@ module Mattermost
|
|
39
45
|
|
40
46
|
def connect_websocket
|
41
47
|
# TODO raise exception then connected? == false
|
42
|
-
@ws_client = WebSocketClient.new "#{base_uri}/websocket", token, {:headers => self.
|
48
|
+
@ws_client = WebSocketClient.new "#{base_uri}/websocket", token, {:headers => self.headers}
|
43
49
|
yield @ws_client if block_given?
|
44
50
|
@ws_client
|
45
51
|
end
|
@@ -48,30 +54,11 @@ module Mattermost
|
|
48
54
|
@ws_client
|
49
55
|
end
|
50
56
|
|
51
|
-
def get(path, options = {}, &block)
|
52
|
-
self.class.get(path, options, &block)
|
53
|
-
end
|
54
|
-
|
55
|
-
def post(path, options = {}, &block)
|
56
|
-
self.class.post(path, options, &block)
|
57
|
-
end
|
58
|
-
|
59
|
-
def put(path, options = {}, &block)
|
60
|
-
self.class.put(path, options, &block)
|
61
|
-
end
|
62
|
-
|
63
|
-
def delete(path, options = {}, &block)
|
64
|
-
self.class.delete(path, options, &block)
|
65
|
-
end
|
66
|
-
|
67
|
-
def base_uri
|
68
|
-
self.class.base_uri
|
69
|
-
end
|
70
|
-
|
71
57
|
private
|
72
58
|
|
73
59
|
def update_token
|
74
|
-
|
60
|
+
headers[:Authorization] = "Bearer #{token}"
|
75
61
|
end
|
62
|
+
|
76
63
|
end
|
77
64
|
end
|
data/lib/mattermost/request.rb
CHANGED
@@ -1,7 +1,52 @@
|
|
1
|
-
require '
|
1
|
+
require 'faraday'
|
2
|
+
require 'faraday_middleware'
|
2
3
|
|
3
4
|
module Mattermost
|
4
5
|
module Request
|
5
|
-
|
6
|
+
|
7
|
+
def get(path, options = {}, &block)
|
8
|
+
puts "get #{path}, #{options}"
|
9
|
+
connection.send(:get) do |request|
|
10
|
+
request.url api(path), options
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
def post(path, options = {}, &block)
|
15
|
+
connection.send(:post) do |request|
|
16
|
+
request.path = api(path)
|
17
|
+
request.body = options[:body] if options.key? :body
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
def put(path, options = {}, &block)
|
22
|
+
connection.send(:put) do |request|
|
23
|
+
request.path = api(path)
|
24
|
+
request.body = options[:body] if options.key? :body
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
def delete(path, options = {}, &block)
|
29
|
+
connection.send(:delete) do |request|
|
30
|
+
request.path = api(path)
|
31
|
+
request.body = options[:body] if options.key? :body
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
private
|
36
|
+
|
37
|
+
def connection
|
38
|
+
Faraday::Connection.new({
|
39
|
+
:headers => self.headers,
|
40
|
+
:url => server
|
41
|
+
}) do |connection|
|
42
|
+
connection.response :json
|
43
|
+
connection.adapter :httpclient
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
def api(path)
|
48
|
+
"/api/v4#{path}"
|
49
|
+
end
|
50
|
+
|
6
51
|
end
|
7
52
|
end
|
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |spec|
|
4
4
|
spec.name = "mattermost-api4-ruby"
|
5
|
-
spec.version = "0.0.
|
5
|
+
spec.version = "0.0.8"
|
6
6
|
spec.authors = ["Takayuki Maruyama"]
|
7
7
|
spec.email = ["bis5.wsys@gmail.com"]
|
8
8
|
|
@@ -22,7 +22,9 @@ Gem::Specification.new do |spec|
|
|
22
22
|
spec.add_development_dependency "rspec", "~> 3.0"
|
23
23
|
spec.add_development_dependency "github_changelog_generator"
|
24
24
|
|
25
|
-
spec.add_dependency "
|
25
|
+
spec.add_dependency "faraday", "~> 0.14"
|
26
|
+
spec.add_dependency "faraday_middleware", "~> 0.12"
|
27
|
+
spec.add_dependency "httpclient", ">= 2.2"
|
26
28
|
spec.add_dependency "faye-websocket", "~> 0.10"
|
27
29
|
spec.add_dependency "event_emitter", "~> 0.2"
|
28
30
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mattermost-api4-ruby
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Takayuki Maruyama
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-01-
|
11
|
+
date: 2018-01-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -67,19 +67,47 @@ dependencies:
|
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '0'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
|
-
name:
|
70
|
+
name: faraday
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
73
|
- - "~>"
|
74
74
|
- !ruby/object:Gem::Version
|
75
|
-
version: '0.
|
75
|
+
version: '0.14'
|
76
76
|
type: :runtime
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
80
|
- - "~>"
|
81
81
|
- !ruby/object:Gem::Version
|
82
|
-
version: '0.
|
82
|
+
version: '0.14'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: faraday_middleware
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - "~>"
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0.12'
|
90
|
+
type: :runtime
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - "~>"
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0.12'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: httpclient
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - ">="
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '2.2'
|
104
|
+
type: :runtime
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - ">="
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '2.2'
|
83
111
|
- !ruby/object:Gem::Dependency
|
84
112
|
name: faye-websocket
|
85
113
|
requirement: !ruby/object:Gem::Requirement
|