slack-ruby-bot-server 0.9.0 → 0.12.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.
Files changed (46) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +1 -1
  3. data/.rubocop_todo.yml +44 -7
  4. data/.travis.yml +7 -5
  5. data/CHANGELOG.md +48 -19
  6. data/Gemfile +3 -3
  7. data/LICENSE +1 -1
  8. data/README.md +147 -23
  9. data/UPGRADING.md +42 -2
  10. data/images/create-app.png +0 -0
  11. data/lib/slack-ruby-bot-server.rb +9 -11
  12. data/lib/slack-ruby-bot-server/api.rb +4 -4
  13. data/lib/slack-ruby-bot-server/api/endpoints.rb +3 -3
  14. data/lib/slack-ruby-bot-server/api/endpoints/teams_endpoint.rb +20 -5
  15. data/lib/slack-ruby-bot-server/api/helpers.rb +4 -4
  16. data/lib/slack-ruby-bot-server/api/helpers/cursor_helpers.rb +2 -0
  17. data/lib/slack-ruby-bot-server/api/helpers/sort_helpers.rb +1 -0
  18. data/lib/slack-ruby-bot-server/api/middleware.rb +1 -5
  19. data/lib/slack-ruby-bot-server/api/presenters.rb +5 -5
  20. data/lib/slack-ruby-bot-server/api/presenters/status_presenter.rb +1 -0
  21. data/lib/slack-ruby-bot-server/app.rb +0 -27
  22. data/lib/slack-ruby-bot-server/config.rb +10 -0
  23. data/lib/slack-ruby-bot-server/config/database_adapters/activerecord.rb +6 -2
  24. data/lib/slack-ruby-bot-server/config/database_adapters/mongoid.rb +4 -2
  25. data/lib/slack-ruby-bot-server/models/team/activerecord.rb +8 -5
  26. data/lib/slack-ruby-bot-server/models/team/methods.rb +0 -13
  27. data/lib/slack-ruby-bot-server/models/team/mongoid.rb +11 -4
  28. data/lib/slack-ruby-bot-server/server.rb +1 -0
  29. data/lib/slack-ruby-bot-server/service.rb +51 -9
  30. data/lib/slack-ruby-bot-server/version.rb +1 -1
  31. data/public/index.html.erb +1 -0
  32. data/public/scripts/messages.js +33 -0
  33. data/public/scripts/register.js +3 -32
  34. data/sample_apps/sample_app_activerecord/Gemfile +1 -0
  35. data/sample_apps/sample_app_activerecord/README.md +1 -0
  36. data/sample_apps/sample_app_activerecord/config.ru +8 -1
  37. data/sample_apps/sample_app_activerecord/config/postgresql.yml +1 -1
  38. data/sample_apps/sample_app_activerecord/db/migrate/20170307164946_create_teams_table.rb +0 -1
  39. data/sample_apps/sample_app_activerecord/db/migrate/20190323181453_add_activated_fields.rb +7 -0
  40. data/sample_apps/sample_app_activerecord/db/schema.rb +6 -3
  41. data/sample_apps/sample_app_mongoid/Gemfile +1 -0
  42. data/slack-ruby-bot-server.gemspec +2 -3
  43. metadata +10 -25
  44. data/app.json +0 -9
  45. data/images/new.png +0 -0
  46. data/lib/slack-ruby-bot-server/models.rb +0 -1
@@ -1,3 +1,3 @@
1
1
  module SlackRubyBotServer
2
- VERSION = '0.9.0'.freeze
2
+ VERSION = '0.12.1'.freeze
3
3
  end
@@ -3,6 +3,7 @@
3
3
  <title>Slack Ruby Bot Server</title>
4
4
  <script src="/scripts/jquery-1.7.1.min.js"></script>
5
5
  <script src="/scripts/url.min.js"></script>
6
+ <script src="/scripts/messages.js"></script>
6
7
  <script src="/scripts/register.js"></script>
7
8
  <script src="/scripts/stats.js"></script>
8
9
  </head>
@@ -0,0 +1,33 @@
1
+ var SlackRubyBotServer = {};
2
+
3
+ $(document).ready(function() {
4
+
5
+ SlackRubyBotServer.message = function(text) {
6
+ $('#messages').fadeOut('slow', function() {
7
+ $('#messages').fadeIn('slow').html(text)
8
+ });
9
+ };
10
+
11
+ SlackRubyBotServer.error = function(xhr) {
12
+ try {
13
+ var message;
14
+ if (xhr.responseText) {
15
+ var rc = JSON.parse(xhr.responseText);
16
+ if (rc && rc.message) {
17
+ message = rc.message;
18
+ if (message == 'invalid_code') {
19
+ message = 'The code returned from the OAuth workflow was invalid.'
20
+ } else if (message == 'code_already_used') {
21
+ message = 'The code returned from the OAuth workflow has already been used.'
22
+ }
23
+ }
24
+ }
25
+
26
+ SlackRubyBotServer.message(message || xhr.statusText || xhr.responseText || 'Unexpected Error');
27
+
28
+ } catch(err) {
29
+ SlackRubyBotServer.message(err.message);
30
+ }
31
+ };
32
+
33
+ });
@@ -1,37 +1,7 @@
1
- var SlackRubyBotServer = {};
2
-
3
1
  $(document).ready(function() {
4
-
5
- SlackRubyBotServer.message = function(text) {
6
- $('#messages').fadeOut('slow', function() {
7
- $('#messages').fadeIn('slow').html(text)
8
- });
9
- };
10
-
11
- SlackRubyBotServer.error = function(xhr) {
12
- try {
13
- var message;
14
- if (xhr.responseText) {
15
- var rc = JSON.parse(xhr.responseText);
16
- if (rc && rc.message) {
17
- message = rc.message;
18
- if (message == 'invalid_code') {
19
- message = 'The code returned from the OAuth workflow was invalid.'
20
- } else if (message == 'code_already_used') {
21
- message = 'The code returned from the OAuth workflow has already been used.'
22
- }
23
- }
24
- }
25
-
26
- SlackRubyBotServer.message(message || xhr.statusText || xhr.responseText || 'Unexpected Error');
27
-
28
- } catch(err) {
29
- SlackRubyBotServer.message(err.message);
30
- }
31
- };
32
-
33
2
  // Slack OAuth
34
3
  var code = $.url('?code')
4
+ var state = $.url('?state')
35
5
  if (code) {
36
6
  SlackRubyBotServer.message('Working, please wait ...');
37
7
  $('#register').hide();
@@ -39,7 +9,8 @@ $(document).ready(function() {
39
9
  type: "POST",
40
10
  url: "/api/teams",
41
11
  data: {
42
- code: code
12
+ code: code,
13
+ state: state
43
14
  },
44
15
  success: function(data) {
45
16
  SlackRubyBotServer.message('Team successfully registered!<br><br>DM <b>@bot</b> or create a <b>#channel</b> and invite <b>@bot</b> to it.');
@@ -7,6 +7,7 @@ gem 'pg'
7
7
  gem 'rack-server-pages'
8
8
  gem 'rack-test'
9
9
  gem 'slack-ruby-bot-server', path: '../../'
10
+ gem 'unicorn'
10
11
 
11
12
  group :development, :test do
12
13
  gem 'standalone_migrations', '~> 5.2'
@@ -7,5 +7,6 @@ This is a sample slack-ruby-bot-server with ActiveRecord.
7
7
  ```
8
8
  bundle install
9
9
  rake db:create db:migrate
10
+ RAILS_ENV=test rake db:migrate
10
11
  rackup
11
12
  ```
@@ -4,8 +4,15 @@ Bundler.require :default
4
4
 
5
5
  require_relative 'commands'
6
6
  require 'yaml'
7
+ require 'erb'
7
8
 
8
- ActiveRecord::Base.establish_connection(YAML.load_file('config/postgresql.yml')[ENV['RACK_ENV']])
9
+ ActiveRecord::Base.establish_connection(
10
+ YAML.safe_load(
11
+ ERB.new(
12
+ File.read('config/postgresql.yml')
13
+ ).result, [], [], true
14
+ )[ENV['RACK_ENV']]
15
+ )
9
16
 
10
17
  NewRelic::Agent.manual_start
11
18
 
@@ -14,4 +14,4 @@ test:
14
14
 
15
15
  production:
16
16
  <<: *default
17
- database: slack_ruby_bot_server_production
17
+ url: <%= ENV["DATABASE_URL"] %>
@@ -6,7 +6,6 @@ class CreateTeamsTable < ActiveRecord::Migration[5.0]
6
6
  t.boolean :active, default: true
7
7
  t.string :domain
8
8
  t.string :token
9
-
10
9
  t.timestamps
11
10
  end
12
11
  end
@@ -0,0 +1,7 @@
1
+ class AddActivatedFields < ActiveRecord::Migration[5.0]
2
+ def change
3
+ add_column :teams, :bot_user_id, :string
4
+ add_column :teams, :activated_user_id, :string
5
+ add_column :teams, :activated_user_access_token, :string
6
+ end
7
+ end
@@ -10,7 +10,7 @@
10
10
  #
11
11
  # It's strongly recommended that you check this file into your version control system.
12
12
 
13
- ActiveRecord::Schema.define(version: 20_170_307_164_946) do
13
+ ActiveRecord::Schema.define(version: 20_190_323_181_453) do
14
14
  # These are extensions that must be enabled in order to support this database
15
15
  enable_extension 'plpgsql'
16
16
 
@@ -20,7 +20,10 @@ ActiveRecord::Schema.define(version: 20_170_307_164_946) do
20
20
  t.boolean 'active', default: true
21
21
  t.string 'domain'
22
22
  t.string 'token'
23
- t.datetime 'created_at', null: false
24
- t.datetime 'updated_at', null: false
23
+ t.datetime 'created_at', null: false
24
+ t.datetime 'updated_at', null: false
25
+ t.string 'bot_user_id'
26
+ t.string 'activated_user_id'
27
+ t.string 'activated_user_access_token'
25
28
  end
26
29
  end
@@ -6,6 +6,7 @@ gem 'slack-ruby-bot-server', path: '../../'
6
6
 
7
7
  gem 'kaminari-mongoid'
8
8
  gem 'mongoid-scroll'
9
+ gem 'unicorn'
9
10
 
10
11
  group :test do
11
12
  gem 'database_cleaner'
@@ -1,6 +1,6 @@
1
1
  lib = File.expand_path('lib', __dir__)
2
2
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
3
- require 'slack-ruby-bot-server/version'
3
+ require_relative 'lib/slack-ruby-bot-server/version'
4
4
 
5
5
  Gem::Specification.new do |spec|
6
6
  spec.name = 'slack-ruby-bot-server'
@@ -14,7 +14,7 @@ Gem::Specification.new do |spec|
14
14
  spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(spec)/}) }
15
15
  spec.require_paths = ['lib']
16
16
 
17
- spec.add_dependency 'async-websocket'
17
+ spec.add_dependency 'async-websocket', '~> 0.8.0'
18
18
  spec.add_dependency 'foreman'
19
19
  spec.add_dependency 'grape'
20
20
  spec.add_dependency 'grape-roar', '>= 0.4.0'
@@ -24,5 +24,4 @@ Gem::Specification.new do |spec|
24
24
  spec.add_dependency 'rack-rewrite'
25
25
  spec.add_dependency 'rack-server-pages'
26
26
  spec.add_dependency 'slack-ruby-bot', '>= 0.12.0'
27
- spec.add_dependency 'unicorn'
28
27
  end
metadata CHANGED
@@ -1,29 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: slack-ruby-bot-server
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.0
4
+ version: 0.12.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Daniel Doubrovkine
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-02-25 00:00:00.000000000 Z
11
+ date: 2020-06-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: async-websocket
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ">="
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '0'
19
+ version: 0.8.0
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ">="
24
+ - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '0'
26
+ version: 0.8.0
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: foreman
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -150,20 +150,6 @@ dependencies:
150
150
  - - ">="
151
151
  - !ruby/object:Gem::Version
152
152
  version: 0.12.0
153
- - !ruby/object:Gem::Dependency
154
- name: unicorn
155
- requirement: !ruby/object:Gem::Requirement
156
- requirements:
157
- - - ">="
158
- - !ruby/object:Gem::Version
159
- version: '0'
160
- type: :runtime
161
- prerelease: false
162
- version_requirements: !ruby/object:Gem::Requirement
163
- requirements:
164
- - - ">="
165
- - !ruby/object:Gem::Version
166
- version: '0'
167
153
  description:
168
154
  email:
169
155
  - dblock@dblock.org
@@ -187,8 +173,7 @@ files:
187
173
  - RELEASING.md
188
174
  - Rakefile
189
175
  - UPGRADING.md
190
- - app.json
191
- - images/new.png
176
+ - images/create-app.png
192
177
  - images/slackbotserver.gif
193
178
  - images/slackbutton.gif
194
179
  - lib/slack-ruby-bot-server.rb
@@ -221,7 +206,6 @@ files:
221
206
  - lib/slack-ruby-bot-server/ext/slack-ruby-bot.rb
222
207
  - lib/slack-ruby-bot-server/ext/slack-ruby-bot/client.rb
223
208
  - lib/slack-ruby-bot-server/info.rb
224
- - lib/slack-ruby-bot-server/models.rb
225
209
  - lib/slack-ruby-bot-server/models/team/activerecord.rb
226
210
  - lib/slack-ruby-bot-server/models/team/methods.rb
227
211
  - lib/slack-ruby-bot-server/models/team/mongoid.rb
@@ -235,6 +219,7 @@ files:
235
219
  - public/index.html.erb
236
220
  - public/robots.txt
237
221
  - public/scripts/jquery-1.7.1.min.js
222
+ - public/scripts/messages.js
238
223
  - public/scripts/register.js
239
224
  - public/scripts/stats.js
240
225
  - public/scripts/url.min.js
@@ -252,6 +237,7 @@ files:
252
237
  - sample_apps/sample_app_activerecord/config/newrelic.yml
253
238
  - sample_apps/sample_app_activerecord/config/postgresql.yml
254
239
  - sample_apps/sample_app_activerecord/db/migrate/20170307164946_create_teams_table.rb
240
+ - sample_apps/sample_app_activerecord/db/migrate/20190323181453_add_activated_fields.rb
255
241
  - sample_apps/sample_app_activerecord/db/schema.rb
256
242
  - sample_apps/sample_app_activerecord/spec/api/root_spec.rb
257
243
  - sample_apps/sample_app_activerecord/spec/commands/help_spec.rb
@@ -293,8 +279,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
293
279
  - !ruby/object:Gem::Version
294
280
  version: '0'
295
281
  requirements: []
296
- rubyforge_project:
297
- rubygems_version: 2.7.6
282
+ rubygems_version: 3.1.3
298
283
  signing_key:
299
284
  specification_version: 4
300
285
  summary: A Grape API serving a Slack bot to multiple teams.
data/app.json DELETED
@@ -1,9 +0,0 @@
1
- {
2
- "name": "Slack Bot Server",
3
- "description": "A Slack bot server.",
4
- "respository": "https://github.com/slack-ruby/slack-ruby-bot-server",
5
- "keywords": ["slack", "bots"],
6
- "addons": [
7
- "mongolab"
8
- ]
9
- }
Binary file
@@ -1 +0,0 @@
1
- require 'slack-ruby-bot-server/models/team'