chat_sdk-mattermost 0.2.1 → 0.3.1
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/lib/chat_sdk/mattermost/adapter.rb +1 -4
- data/lib/chat_sdk/mattermost/api_client.rb +20 -46
- metadata +4 -4
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: a888a9dbc00ed0bac3cd6e8722f45f8cddefc83c427edf5156ce3366dd9f4e43
|
|
4
|
+
data.tar.gz: 4a59772d82b22d063d8ab4e9d3c07223d8a5795d898cb083f32f7e414e66a848
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: d4bbcf5431b1fe4cc3553b209ea6d8314f635303859601b7d319970a23cf7728a683aaad5ff0ff8f86bf64934618d50ece57071e5b1bac0341b484ba329fa4d1
|
|
7
|
+
data.tar.gz: 96984f4613c626e198593f6e2ee09d557e32c0812260e75ad865efde3e067c5d2f2da45b7536830ea9c8a6c0c4f627719da3d4f8a332e4d45ac0d58e2512a21f
|
|
@@ -50,10 +50,7 @@ module ChatSDK
|
|
|
50
50
|
end
|
|
51
51
|
|
|
52
52
|
def parse_events(rack_request)
|
|
53
|
-
|
|
54
|
-
rack_request.body.rewind
|
|
55
|
-
|
|
56
|
-
payload = JSON.parse(body)
|
|
53
|
+
payload = read_json_body(rack_request)
|
|
57
54
|
EventParser.parse(payload, bot_user_id: @bot_user_id)
|
|
58
55
|
rescue JSON::ParserError
|
|
59
56
|
[]
|
|
@@ -2,11 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
module ChatSDK
|
|
4
4
|
module Mattermost
|
|
5
|
-
class ApiClient
|
|
6
|
-
attr_reader :base_url
|
|
7
|
-
|
|
5
|
+
class ApiClient < ChatSDK::ApiClient::Base
|
|
8
6
|
def initialize(base_url:, bot_token:)
|
|
9
|
-
@
|
|
7
|
+
@base_url_value = base_url.chomp("/")
|
|
10
8
|
@bot_token = bot_token
|
|
11
9
|
end
|
|
12
10
|
|
|
@@ -63,21 +61,12 @@ module ChatSDK
|
|
|
63
61
|
|
|
64
62
|
# Files
|
|
65
63
|
def upload_file(channel_id:, io:, filename:)
|
|
66
|
-
conn = Faraday.new(url: @base_url) do |f|
|
|
67
|
-
f.request :multipart
|
|
68
|
-
f.response :json
|
|
69
|
-
f.adapter :net_http
|
|
70
|
-
end
|
|
71
|
-
|
|
72
64
|
payload = {
|
|
73
65
|
files: Faraday::Multipart::FilePart.new(io, "application/octet-stream", filename),
|
|
74
66
|
channel_id: channel_id
|
|
75
67
|
}
|
|
76
68
|
|
|
77
|
-
response =
|
|
78
|
-
req.headers["Authorization"] = "Bearer #{@bot_token}"
|
|
79
|
-
end
|
|
80
|
-
|
|
69
|
+
response = upload_connection.post("/api/v4/files", payload)
|
|
81
70
|
handle_response(response)
|
|
82
71
|
end
|
|
83
72
|
|
|
@@ -88,43 +77,28 @@ module ChatSDK
|
|
|
88
77
|
|
|
89
78
|
private
|
|
90
79
|
|
|
91
|
-
def
|
|
92
|
-
@
|
|
93
|
-
f.request :json
|
|
94
|
-
f.response :json
|
|
95
|
-
f.adapter :net_http
|
|
96
|
-
end
|
|
80
|
+
def base_url
|
|
81
|
+
@base_url_value
|
|
97
82
|
end
|
|
98
83
|
|
|
99
|
-
def
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
req.body = body if body && method != :get
|
|
103
|
-
end
|
|
84
|
+
def adapter_name
|
|
85
|
+
:mattermost
|
|
86
|
+
end
|
|
104
87
|
|
|
105
|
-
|
|
88
|
+
def configure_auth(faraday)
|
|
89
|
+
faraday.headers["Authorization"] = "Bearer #{@bot_token}"
|
|
90
|
+
end
|
|
91
|
+
|
|
92
|
+
def extract_success_body(response)
|
|
93
|
+
response.body
|
|
94
|
+
end
|
|
95
|
+
|
|
96
|
+
def extract_retry_after(response)
|
|
97
|
+
response.headers["Retry-After"]&.to_i
|
|
106
98
|
end
|
|
107
99
|
|
|
108
|
-
def
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
if response.status == 429
|
|
112
|
-
retry_after = response.headers["Retry-After"]&.to_i
|
|
113
|
-
raise ChatSDK::RateLimitedError.new(
|
|
114
|
-
"Mattermost API rate limited",
|
|
115
|
-
retry_after: retry_after,
|
|
116
|
-
status: response.status,
|
|
117
|
-
body: response.body,
|
|
118
|
-
adapter_name: :mattermost
|
|
119
|
-
)
|
|
120
|
-
end
|
|
121
|
-
|
|
122
|
-
raise ChatSDK::PlatformError.new(
|
|
123
|
-
"Mattermost API error: #{response.status}",
|
|
124
|
-
status: response.status,
|
|
125
|
-
body: response.body,
|
|
126
|
-
adapter_name: :mattermost
|
|
127
|
-
)
|
|
100
|
+
def extract_error_message(response)
|
|
101
|
+
response.status.to_s
|
|
128
102
|
end
|
|
129
103
|
end
|
|
130
104
|
end
|
metadata
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: chat_sdk-mattermost
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.3.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
|
-
-
|
|
7
|
+
- Quentin Rousseau
|
|
8
8
|
bindir: bin
|
|
9
9
|
cert_chain: []
|
|
10
10
|
date: 1980-01-02 00:00:00.000000000 Z
|
|
@@ -39,7 +39,7 @@ dependencies:
|
|
|
39
39
|
version: '2.0'
|
|
40
40
|
description: Mattermost bot adapter for the ChatSDK framework
|
|
41
41
|
email:
|
|
42
|
-
-
|
|
42
|
+
- quentin@rootly.com
|
|
43
43
|
executables: []
|
|
44
44
|
extensions: []
|
|
45
45
|
extra_rdoc_files: []
|
|
@@ -49,7 +49,7 @@ files:
|
|
|
49
49
|
- lib/chat_sdk/mattermost/api_client.rb
|
|
50
50
|
- lib/chat_sdk/mattermost/attachment_renderer.rb
|
|
51
51
|
- lib/chat_sdk/mattermost/event_parser.rb
|
|
52
|
-
homepage: https://github.com/rootlyhq/
|
|
52
|
+
homepage: https://github.com/rootlyhq/chat-sdk
|
|
53
53
|
licenses:
|
|
54
54
|
- MIT
|
|
55
55
|
metadata:
|