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.
@@ -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=