factor-connector-slack 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -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 'slack' do
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
- url = 'https://slack.com/api/chat.postMessage'
24
- raw_response = RestClient.post(url, payload)
25
- response = JSON.parse(raw_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 'Unable to deliver your message'
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.1
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-08 00:00:00.000000000 Z
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.9
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.9
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.3.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.3.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/slack.rb
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: 2.4.2
141
+ rubygems_version: 1.8.25
111
142
  signing_key:
112
- specification_version: 4
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=