mattermost-api4-ruby 0.0.7 → 0.0.8

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
  SHA1:
3
- metadata.gz: 3f9d0ac73088c4af888d5d3ee7320c31b77e1402
4
- data.tar.gz: 9250e3cc7bb29b56025db305e92e86ef43dc41dd
3
+ metadata.gz: 4d2172dab7043981ddc6e9f23a1252c603b708b9
4
+ data.tar.gz: 977042fdc8a7bdc73582f35033fc44cde43129f4
5
5
  SHA512:
6
- metadata.gz: 2c2ebbc56ca76fd5221e56f84ad6fe58664c04592dc1779f152a9a24a901f9c930e4e5f2bad67b18817e366ce725b2d2468912630c6ffca09c5643eb41ced02f
7
- data.tar.gz: 8eef9ede276e9ecbaf343ae8215ece695dbab6e0e5520098ebc54c897bc29f4d3aeb5818dadfa92dc796d8c256c2ccc1b218959156ff3e1f41c6a1e15ba8f7ed
6
+ metadata.gz: 0b5df1bb0875c5cbbd43289c090c2a5446209d2ba03182f7e8bfa8ea6ed3ed157cb8355c1acdcf8790369aebddf7fe2574c4d175b7b0666f239b2b6c552eb821
7
+ data.tar.gz: e77fadbea409b42f6d9a1b2c30e926fdad9424725cefe27fa87c2bc5dcab45abf7304528c702ecdb65f324640ededded48dd37630fb98ec3a2b759f81b6f4929
@@ -1,6 +1,17 @@
1
1
  # Change Log
2
2
 
3
- ## [v0.0.7](https://github.com/maruTA-bis5/mattermost-api4-ruby/tree/v0.0.7) (2018-01-24)
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:**
@@ -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
- include HTTParty
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.class.base_uri "#{server}/api/v4"
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.class.headers}
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
- self.class.headers :Authorization => "Bearer #{token}"
60
+ headers[:Authorization] = "Bearer #{token}"
75
61
  end
62
+
76
63
  end
77
64
  end
@@ -1,7 +1,52 @@
1
- require 'httparty'
1
+ require 'faraday'
2
+ require 'faraday_middleware'
2
3
 
3
4
  module Mattermost
4
5
  module Request
5
- include HTTParty
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.7"
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 "httparty", "~> 0.15"
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.7
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-23 00:00:00.000000000 Z
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: httparty
70
+ name: faraday
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: '0.15'
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.15'
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