factor-connector-slack 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.
- data/lib/factor/connector/slack_channel.rb +194 -0
- data/lib/factor/connector/{slack.rb → slack_chat.rb} +7 -10
- data/lib/factor/connector/slack_group.rb +61 -0
- data/lib/factor/connector/slack_user.rb +28 -0
- metadata +41 -10
- checksums.yaml +0 -15
@@ -0,0 +1,194 @@
|
|
1
|
+
require 'factor-connector-api'
|
2
|
+
require 'rest_client'
|
3
|
+
|
4
|
+
Factor::Connector.service 'slack_channel' do
|
5
|
+
action "list" do |params|
|
6
|
+
|
7
|
+
token = params['token']
|
8
|
+
|
9
|
+
fail 'Token is required' unless token
|
10
|
+
|
11
|
+
payload = {
|
12
|
+
token: token
|
13
|
+
}
|
14
|
+
|
15
|
+
info "Getting all Channels"
|
16
|
+
begin
|
17
|
+
uri = 'https://slack.com/api/channels.list'
|
18
|
+
raw_response = RestClient::Request.execute(url:uri, method:'POST', ssl_version:'SSLv23', payload:payload)
|
19
|
+
response = JSON.parse(raw_response)
|
20
|
+
rescue
|
21
|
+
fail "Failed to connect to Slack API, check your credentials"
|
22
|
+
end
|
23
|
+
|
24
|
+
fail response['error'] unless response['ok']
|
25
|
+
|
26
|
+
action_callback response
|
27
|
+
end
|
28
|
+
|
29
|
+
action "invite" do |params|
|
30
|
+
token = params['token']
|
31
|
+
channel = params['channel']
|
32
|
+
user = params['user']
|
33
|
+
|
34
|
+
fail 'Token is required' unless token
|
35
|
+
fail 'Channel is required' unless channel
|
36
|
+
fail 'Username is required' unless user
|
37
|
+
|
38
|
+
payload = {
|
39
|
+
token: token
|
40
|
+
}
|
41
|
+
|
42
|
+
info "Getting all Channels"
|
43
|
+
begin
|
44
|
+
uri = 'https://slack.com/api/channels.list'
|
45
|
+
raw_response = RestClient::Request.execute(url:uri, method:'POST', ssl_version:'SSLv23', payload:payload)
|
46
|
+
response = JSON.parse(raw_response)
|
47
|
+
rescue
|
48
|
+
fail "Failed to connect to Slack API, check your credentials"
|
49
|
+
end
|
50
|
+
|
51
|
+
fail response['error'] unless response['ok']
|
52
|
+
|
53
|
+
response['channels'].each do |n|
|
54
|
+
if n['name'] == channel
|
55
|
+
channel = n['id']
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
info "Getting Users"
|
60
|
+
begin
|
61
|
+
uri = 'https://slack.com/api/users.list'
|
62
|
+
raw_response = RestClient::Request.execute(url:uri, method:'POST', ssl_version:'SSLv23', payload:payload)
|
63
|
+
response = JSON.parse(raw_response)
|
64
|
+
rescue
|
65
|
+
fail "Failed to connect to Slack API, check your credentials"
|
66
|
+
end
|
67
|
+
|
68
|
+
fail response['error'] unless response['ok']
|
69
|
+
|
70
|
+
response['members'].each do |n|
|
71
|
+
if n['name'] == user
|
72
|
+
user = n['id']
|
73
|
+
end
|
74
|
+
end
|
75
|
+
|
76
|
+
payload = {
|
77
|
+
token: token,
|
78
|
+
channel: channel,
|
79
|
+
user: user
|
80
|
+
}
|
81
|
+
|
82
|
+
info "Inviting #{user} to #{channel}"
|
83
|
+
begin
|
84
|
+
uri = 'https://slack.com/api/channels.invite'
|
85
|
+
raw_response = RestClient::Request.execute(url:uri, method:'POST', ssl_version:'SSLv23', payload:payload)
|
86
|
+
response = JSON.parse(raw_response)
|
87
|
+
rescue
|
88
|
+
fail "Failed to connect to Slack API, check your credentials"
|
89
|
+
end
|
90
|
+
|
91
|
+
fail response['error'] unless response['ok']
|
92
|
+
|
93
|
+
action_callback response
|
94
|
+
end
|
95
|
+
|
96
|
+
action "history" do |params|
|
97
|
+
|
98
|
+
token = params['token']
|
99
|
+
channel = params['channel']
|
100
|
+
|
101
|
+
fail 'Token is required' unless token
|
102
|
+
fail 'Channel is required' unless channel
|
103
|
+
|
104
|
+
payload = {
|
105
|
+
token: token
|
106
|
+
}
|
107
|
+
|
108
|
+
info "Getting all Channels"
|
109
|
+
begin
|
110
|
+
uri = 'https://slack.com/api/channels.list'
|
111
|
+
raw_response = RestClient::Request.execute(url:uri, method:'POST', ssl_version:'SSLv23', payload:payload)
|
112
|
+
response = JSON.parse(raw_response)
|
113
|
+
rescue
|
114
|
+
fail "Failed to connect to Slack API, check your credentials"
|
115
|
+
end
|
116
|
+
|
117
|
+
fail response['error'] unless response['ok']
|
118
|
+
|
119
|
+
response['channels'].each do |n|
|
120
|
+
if n['name'] == channel
|
121
|
+
channel = n['id']
|
122
|
+
end
|
123
|
+
end
|
124
|
+
|
125
|
+
payload = {
|
126
|
+
token: token,
|
127
|
+
channel: channel,
|
128
|
+
}
|
129
|
+
|
130
|
+
info "Getting History for #{channel}"
|
131
|
+
begin
|
132
|
+
uri = 'https://slack.com/api/channels.history'
|
133
|
+
raw_reponse = RestClient::Request.execute(url:uri, method:'POST', ssl_version:'SSLv23', payload:payload)
|
134
|
+
response = JSON.parse(raw_reponse)
|
135
|
+
rescue
|
136
|
+
fail "Failed to connect to Slack API, check your credentials"
|
137
|
+
end
|
138
|
+
|
139
|
+
fail response['error'] unless response['ok']
|
140
|
+
|
141
|
+
action_callback response
|
142
|
+
end
|
143
|
+
|
144
|
+
action "topic" do |params|
|
145
|
+
|
146
|
+
token = params['token']
|
147
|
+
channel = params['channel']
|
148
|
+
topic = params['topic']
|
149
|
+
|
150
|
+
fail 'Token is required' unless token
|
151
|
+
fail 'Channel is required' unless channel
|
152
|
+
fail 'Topic is required' unless topic
|
153
|
+
|
154
|
+
payload = {
|
155
|
+
token: token
|
156
|
+
}
|
157
|
+
|
158
|
+
info "Getting all Channels"
|
159
|
+
begin
|
160
|
+
uri = 'https://slack.com/api/channels.list'
|
161
|
+
raw_response = RestClient::Request.execute(url:uri, method:'POST', ssl_version:'SSLv23', payload:payload)
|
162
|
+
response = JSON.parse(raw_response)
|
163
|
+
rescue
|
164
|
+
fail "Failed to connect to Slack API, check your credentials"
|
165
|
+
end
|
166
|
+
|
167
|
+
fail response['error'] unless response['ok']
|
168
|
+
|
169
|
+
response['channels'].each do |n|
|
170
|
+
if n['name'] == channel
|
171
|
+
channel = n['id']
|
172
|
+
end
|
173
|
+
end
|
174
|
+
|
175
|
+
payload = {
|
176
|
+
token: token,
|
177
|
+
channel: channel,
|
178
|
+
topic: topic
|
179
|
+
}
|
180
|
+
|
181
|
+
info "Setting Topic"
|
182
|
+
begin
|
183
|
+
uri = 'https://slack.com/api/channels.setTopic'
|
184
|
+
raw_reponse = RestClient::Request.execute(url:uri, method:'POST', ssl_version:'SSLv23', payload:payload)
|
185
|
+
response = JSON.parse(raw_reponse)
|
186
|
+
rescue
|
187
|
+
fail "Failed to connect to Slack API, check your credentials"
|
188
|
+
end
|
189
|
+
|
190
|
+
fail response['error'] unless response['ok']
|
191
|
+
|
192
|
+
action_callback response
|
193
|
+
end
|
194
|
+
end
|
@@ -1,14 +1,13 @@
|
|
1
1
|
require 'factor-connector-api'
|
2
2
|
require 'rest_client'
|
3
3
|
|
4
|
-
Factor::Connector.service '
|
4
|
+
Factor::Connector.service 'slack_chat' do
|
5
5
|
action "send" do |params|
|
6
6
|
|
7
7
|
token = params['token']
|
8
8
|
channel = params['channel']
|
9
9
|
text = params['text']
|
10
10
|
|
11
|
-
|
12
11
|
fail 'Token is required' unless token
|
13
12
|
fail 'Channel is required' unless channel
|
14
13
|
fail 'Text is required' unless text
|
@@ -19,19 +18,17 @@ Factor::Connector.service 'slack' do
|
|
19
18
|
text: text
|
20
19
|
}
|
21
20
|
|
21
|
+
info "Posting Message"
|
22
22
|
begin
|
23
|
-
|
24
|
-
raw_response = RestClient.
|
25
|
-
response
|
26
|
-
info "Message Sent"
|
23
|
+
uri = 'https://slack.com/api/chat.postMessage'
|
24
|
+
raw_response = RestClient::Request.execute(url:uri, method:'POST', ssl_version:'SSLv23', payload:payload)
|
25
|
+
response = JSON.parse(raw_response)
|
27
26
|
rescue
|
28
|
-
fail
|
27
|
+
fail "Failed to connect to Slack API, check your credentials"
|
29
28
|
end
|
30
29
|
|
31
|
-
|
32
|
-
fail "Error from Slack API: #{response['error']}" unless response['ok']
|
30
|
+
fail response['error'] unless response['ok']
|
33
31
|
|
34
32
|
action_callback response
|
35
33
|
end
|
36
34
|
end
|
37
|
-
|
@@ -0,0 +1,61 @@
|
|
1
|
+
require 'factor-connector-api'
|
2
|
+
require 'rest_client'
|
3
|
+
|
4
|
+
Factor::Connector.service 'slack_group' do
|
5
|
+
action "create" do |params|
|
6
|
+
|
7
|
+
token = params['token']
|
8
|
+
name = params['name']
|
9
|
+
|
10
|
+
fail 'Token is required' unless token
|
11
|
+
fail 'Name required' unless name
|
12
|
+
|
13
|
+
payload = {
|
14
|
+
token: token,
|
15
|
+
name: name,
|
16
|
+
}
|
17
|
+
|
18
|
+
info "Creating Group"
|
19
|
+
begin
|
20
|
+
uri = 'https://slack.com/api/groups.create'
|
21
|
+
raw_response = RestClient::Request.execute(url:uri, method:'POST', ssl_version:'SSLv23', payload:payload)
|
22
|
+
response = JSON.parse(raw_response)
|
23
|
+
rescue
|
24
|
+
fail "Failed to connect to Slack API, check your credentials"
|
25
|
+
end
|
26
|
+
|
27
|
+
fail response['error'] unless response['ok']
|
28
|
+
|
29
|
+
action_callback response
|
30
|
+
end
|
31
|
+
|
32
|
+
action "invite" do |params|
|
33
|
+
|
34
|
+
token = params['token']
|
35
|
+
channel = params['channel']
|
36
|
+
user = params['user']
|
37
|
+
|
38
|
+
fail 'Token is required' unless token
|
39
|
+
fail 'Channel is required' unless channel
|
40
|
+
fail 'Username is required' unless user
|
41
|
+
|
42
|
+
payload = {
|
43
|
+
token: token,
|
44
|
+
channel: channel,
|
45
|
+
user: user
|
46
|
+
}
|
47
|
+
|
48
|
+
info "Inviting User"
|
49
|
+
begin
|
50
|
+
uri = 'https://slack.com/api/groups.invite'
|
51
|
+
raw_response = RestClient::Request.execute(url:uri, method:'POST', ssl_version:'SSLv23', payload:payload)
|
52
|
+
response = JSON.parse(raw_response)
|
53
|
+
rescue
|
54
|
+
fail "Failed to connect to Slack API, check your credentials"
|
55
|
+
end
|
56
|
+
|
57
|
+
fail response['error'] unless response['ok']
|
58
|
+
|
59
|
+
action_callback response
|
60
|
+
end
|
61
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
require 'factor-connector-api'
|
2
|
+
require 'rest_client'
|
3
|
+
|
4
|
+
Factor::Connector.service 'slack_user' do
|
5
|
+
action 'list' do |params|
|
6
|
+
|
7
|
+
token = params['token']
|
8
|
+
|
9
|
+
fail "Token is required" unless token
|
10
|
+
|
11
|
+
payload = {
|
12
|
+
token: token
|
13
|
+
}
|
14
|
+
|
15
|
+
info "Listing Users"
|
16
|
+
begin
|
17
|
+
uri = 'https://slack.com/api/users.list'
|
18
|
+
raw_response = RestClient::Request.execute(url:uri, method:'POST', ssl_version:'SSLv23', payload:payload)
|
19
|
+
response = JSON.parse(raw_response)
|
20
|
+
rescue
|
21
|
+
fail "Failed to connect to Slack API, check your credentials"
|
22
|
+
end
|
23
|
+
|
24
|
+
fail response['error'] unless response['ok']
|
25
|
+
|
26
|
+
action_callback response
|
27
|
+
end
|
28
|
+
end
|
metadata
CHANGED
@@ -1,46 +1,68 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: factor-connector-slack
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
|
+
prerelease:
|
5
6
|
platform: ruby
|
6
7
|
authors:
|
7
8
|
- Andrew Akers
|
8
9
|
autorequire:
|
9
10
|
bindir: bin
|
10
11
|
cert_chain: []
|
11
|
-
date: 2014-10-
|
12
|
+
date: 2014-10-17 00:00:00.000000000 Z
|
12
13
|
dependencies:
|
13
14
|
- !ruby/object:Gem::Dependency
|
14
15
|
name: factor-connector-api
|
15
16
|
requirement: !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
16
18
|
requirements:
|
17
19
|
- - ~>
|
18
20
|
- !ruby/object:Gem::Version
|
19
|
-
version: 0.0.
|
21
|
+
version: 0.0.13
|
20
22
|
type: :runtime
|
21
23
|
prerelease: false
|
22
24
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
23
26
|
requirements:
|
24
27
|
- - ~>
|
25
28
|
- !ruby/object:Gem::Version
|
26
|
-
version: 0.0.
|
29
|
+
version: 0.0.13
|
30
|
+
- !ruby/object:Gem::Dependency
|
31
|
+
name: rest_client
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
33
|
+
none: false
|
34
|
+
requirements:
|
35
|
+
- - ! '>='
|
36
|
+
- !ruby/object:Gem::Version
|
37
|
+
version: '0'
|
38
|
+
type: :runtime
|
39
|
+
prerelease: false
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ! '>='
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: '0'
|
27
46
|
- !ruby/object:Gem::Dependency
|
28
47
|
name: codeclimate-test-reporter
|
29
48
|
requirement: !ruby/object:Gem::Requirement
|
49
|
+
none: false
|
30
50
|
requirements:
|
31
51
|
- - ~>
|
32
52
|
- !ruby/object:Gem::Version
|
33
|
-
version: 0.
|
53
|
+
version: 0.4.1
|
34
54
|
type: :development
|
35
55
|
prerelease: false
|
36
56
|
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
37
58
|
requirements:
|
38
59
|
- - ~>
|
39
60
|
- !ruby/object:Gem::Version
|
40
|
-
version: 0.
|
61
|
+
version: 0.4.1
|
41
62
|
- !ruby/object:Gem::Dependency
|
42
63
|
name: rspec
|
43
64
|
requirement: !ruby/object:Gem::Requirement
|
65
|
+
none: false
|
44
66
|
requirements:
|
45
67
|
- - ~>
|
46
68
|
- !ruby/object:Gem::Version
|
@@ -48,6 +70,7 @@ dependencies:
|
|
48
70
|
type: :development
|
49
71
|
prerelease: false
|
50
72
|
version_requirements: !ruby/object:Gem::Requirement
|
73
|
+
none: false
|
51
74
|
requirements:
|
52
75
|
- - ~>
|
53
76
|
- !ruby/object:Gem::Version
|
@@ -55,6 +78,7 @@ dependencies:
|
|
55
78
|
- !ruby/object:Gem::Dependency
|
56
79
|
name: rake
|
57
80
|
requirement: !ruby/object:Gem::Requirement
|
81
|
+
none: false
|
58
82
|
requirements:
|
59
83
|
- - ~>
|
60
84
|
- !ruby/object:Gem::Version
|
@@ -62,6 +86,7 @@ dependencies:
|
|
62
86
|
type: :development
|
63
87
|
prerelease: false
|
64
88
|
version_requirements: !ruby/object:Gem::Requirement
|
89
|
+
none: false
|
65
90
|
requirements:
|
66
91
|
- - ~>
|
67
92
|
- !ruby/object:Gem::Version
|
@@ -69,6 +94,7 @@ dependencies:
|
|
69
94
|
- !ruby/object:Gem::Dependency
|
70
95
|
name: wrong
|
71
96
|
requirement: !ruby/object:Gem::Requirement
|
97
|
+
none: false
|
72
98
|
requirements:
|
73
99
|
- - ~>
|
74
100
|
- !ruby/object:Gem::Version
|
@@ -76,6 +102,7 @@ dependencies:
|
|
76
102
|
type: :development
|
77
103
|
prerelease: false
|
78
104
|
version_requirements: !ruby/object:Gem::Requirement
|
105
|
+
none: false
|
79
106
|
requirements:
|
80
107
|
- - ~>
|
81
108
|
- !ruby/object:Gem::Version
|
@@ -87,28 +114,32 @@ executables: []
|
|
87
114
|
extensions: []
|
88
115
|
extra_rdoc_files: []
|
89
116
|
files:
|
90
|
-
- lib/factor/connector/
|
117
|
+
- lib/factor/connector/slack_channel.rb
|
118
|
+
- lib/factor/connector/slack_chat.rb
|
119
|
+
- lib/factor/connector/slack_group.rb
|
120
|
+
- lib/factor/connector/slack_user.rb
|
91
121
|
homepage: https://factor.io
|
92
122
|
licenses: []
|
93
|
-
metadata: {}
|
94
123
|
post_install_message:
|
95
124
|
rdoc_options: []
|
96
125
|
require_paths:
|
97
126
|
- lib
|
98
127
|
required_ruby_version: !ruby/object:Gem::Requirement
|
128
|
+
none: false
|
99
129
|
requirements:
|
100
130
|
- - ! '>='
|
101
131
|
- !ruby/object:Gem::Version
|
102
132
|
version: '0'
|
103
133
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
134
|
+
none: false
|
104
135
|
requirements:
|
105
136
|
- - ! '>='
|
106
137
|
- !ruby/object:Gem::Version
|
107
138
|
version: '0'
|
108
139
|
requirements: []
|
109
140
|
rubyforge_project:
|
110
|
-
rubygems_version:
|
141
|
+
rubygems_version: 1.8.25
|
111
142
|
signing_key:
|
112
|
-
specification_version:
|
143
|
+
specification_version: 3
|
113
144
|
summary: Slack Factor.io Connector
|
114
145
|
test_files: []
|
checksums.yaml
DELETED
@@ -1,15 +0,0 @@
|
|
1
|
-
---
|
2
|
-
!binary "U0hBMQ==":
|
3
|
-
metadata.gz: !binary |-
|
4
|
-
Zjc5ZGNmYjU2OGU3MTYwODE1ZDY2ZmVhZDI5ZDEyODMxNmE3MDIxNw==
|
5
|
-
data.tar.gz: !binary |-
|
6
|
-
N2YzNWQ1M2VlMzgzZDkzZGZkMzZkMjNjYmQ2MWY1YWQ3Y2RiM2M3Mg==
|
7
|
-
SHA512:
|
8
|
-
metadata.gz: !binary |-
|
9
|
-
Y2Q3YjY0MDI1NzNkM2U1NDdjYzFmMzRiZDZiODc0NmU1OGQ2YmU2NjA5YTgz
|
10
|
-
NWRiZDNkODg3MWRmYjk4ZGJjMjdjN2IxODExMWIwNzE2MTA2MjUwZjVmNDAw
|
11
|
-
Nzk2NzY1ZDJjNmMyZDVjNjZlOGRmNmFhYjc4ZGViMzgzOWEzNDg=
|
12
|
-
data.tar.gz: !binary |-
|
13
|
-
Nzg5ODE4NDcxMmEzOWJmYjhmZmVjZGRmYzljYzY5MWYwMThmMzU3YjNlMDE1
|
14
|
-
N2ExM2FjOWExYWI2Y2E0Mjc2OTIyYzZlMTkzNGFmZmFlZDNmNDFiNmZiYzdm
|
15
|
-
OGFkNzg2N2Q0NjgwNTFhYjA5OWRjZDg5ODgzNWIyYWYzOTVmMjU=
|