From ac5d755545be5f4fb4fc55a9307ad28cd2a4cc5a Mon Sep 17 00:00:00 2001 From: Sojan Jose Date: Tue, 8 Sep 2020 11:24:08 +0530 Subject: [PATCH] chore: Update dependencies (#1173) --- .rubocop.yml | 45 +++---- Gemfile | 3 +- Gemfile.lock | 127 +++++++++--------- .../messages/facebook/message_builder.rb | 2 +- .../v1/accounts/conversations_controller.rb | 5 +- .../v1/accounts/inbox_members_controller.rb | 2 +- .../api/v1/accounts/inboxes_controller.rb | 2 +- .../api/v1/widget/conversations_controller.rb | 5 +- .../api/v1/widget/messages_controller.rb | 2 +- .../confirmations_controller.rb | 2 +- .../twitter/callbacks_controller.rb | 2 +- app/dispatchers/async_dispatcher.rb | 3 +- app/finders/conversation_finder.rb | 5 +- app/jobs/send_reply_job.rb | 7 +- app/listeners/action_cable_listener.rb | 3 +- app/models/channel/twitter_profile.rb | 2 +- app/models/concerns/featurable.rb | 2 +- app/models/conversation.rb | 6 +- app/models/integrations/app.rb | 2 +- app/models/notification.rb | 7 +- app/models/user.rb | 3 +- app/policies/application_policy.rb | 6 +- app/presenters/mail_presenter.rb | 8 +- .../twitter/send_on_twitter_service.rb | 2 +- .../twitter/webhook_subscribe_service.rb | 6 +- .../application/_navigation.html.erb | 2 +- config/environments/production.rb | 4 +- config/environments/staging.rb | 4 +- config/initializers/sentry.rb | 2 +- lib/custom_exceptions/base.rb | 1 + lib/integrations/facebook/message_creator.rb | 2 +- spec/mailboxes/default_mailbox_spec.rb | 5 - spec/models/super_admin_spec.rb | 5 - 33 files changed, 134 insertions(+), 150 deletions(-) delete mode 100644 spec/mailboxes/default_mailbox_spec.rb delete mode 100644 spec/models/super_admin_spec.rb diff --git a/.rubocop.yml b/.rubocop.yml index 1210063b4..3ee387090 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -4,20 +4,8 @@ require: - rubocop-rspec inherit_from: .rubocop_todo.yml -Lint/RaiseException: - Enabled: true -Lint/StructNewOverride: - Enabled: true -Lint/DeprecatedOpenSSLConstant: - Enabled: true -Lint/MixedRegexpCaptureTypes: - Enabled: true Layout/LineLength: Max: 150 -Layout/EmptyLinesAroundAttributeAccessor: - Enabled: true -Layout/SpaceAroundMethodCallOperator: - Enabled: true Metrics/ClassLength: Max: 125 @@ -33,25 +21,21 @@ Style/FrozenStringLiteralComment: Enabled: false Style/SymbolArray: Enabled: false -Style/HashEachMethods: - Enabled: true -Style/HashTransformKeys: - Enabled: true -Style/HashTransformValues: - Enabled: true -Style/RedundantFetchBlock: - Enabled: true -Style/RedundantRegexpCharacterClass: - Enabled: true -Style/RedundantRegexpEscape: - Enabled: true -Style/SlicingWithRange: - Enabled: true +Style/OptionalBooleanParameter: + Exclude: + - 'app/services/email_templates/db_resolver_service.rb' + - 'app/dispatchers/dispatcher.rb' Style/GlobalVars: Exclude: - 'config/initializers/redis.rb' - 'lib/redis/alfred.rb' - 'lib/global_config.rb' +Style/ClassVars: + Exclude: + - 'app/services/email_templates/db_resolver_service.rb' +Lint/MissingSuper: + Exclude: + - 'app/drops/base_drop.rb' Metrics/BlockLength: Exclude: - spec/**/* @@ -87,7 +71,9 @@ Style/GuardClause: - 'db/migrate/20190819005836_add_missing_indexes_on_taggings.acts_as_taggable_on_engine.rb' Metrics/AbcSize: Exclude: + - 'app/controllers/concerns/auth_helper.rb' - 'db/migrate/20190819005836_add_missing_indexes_on_taggings.acts_as_taggable_on_engine.rb' + - 'db/migrate/20161123131628_devise_token_auth_create_users.rb' Metrics/CyclomaticComplexity: Exclude: - 'db/migrate/20190819005836_add_missing_indexes_on_taggings.acts_as_taggable_on_engine.rb' @@ -115,9 +101,16 @@ Rails/UniqueValidationWithoutIndex: Exclude: - 'app/models/channel/twitter_profile.rb' - 'app/models/webhook.rb' +Rails/RenderInline: + Exclude: + - 'app/controllers/swagger_controller.rb' RSpec/NamedSubject: Enabled: false +# we should bring this down +RSpec/MultipleMemoizedHelpers: + Max: 12 AllCops: + NewCops: enable Exclude: - 'bin/**/*' - 'db/schema.rb' diff --git a/Gemfile b/Gemfile index c448fad36..32dab102c 100644 --- a/Gemfile +++ b/Gemfile @@ -65,7 +65,8 @@ gem 'administrate' gem 'wisper', '2.0.0' ##--- gems for channels ---## -gem 'facebook-messenger' +# TODO: bump up gem to 2.0 +gem 'facebook-messenger', '1.5.0' gem 'telegram-bot-ruby' gem 'twilio-ruby', '~> 5.32.0' # twitty will handle subscription of twitter account events diff --git a/Gemfile.lock b/Gemfile.lock index f3a479db7..3001534e6 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -77,7 +77,7 @@ GEM activerecord (>= 5.0, < 6.1) addressable (2.7.0) public_suffix (>= 2.0.2, < 5.0) - administrate (0.13.0) + administrate (0.14.0) actionpack (>= 4.2) actionview (>= 4.2) activerecord (>= 4.2) @@ -93,23 +93,23 @@ GEM rake (>= 10.4, < 14.0) ast (2.4.1) attr_extras (6.2.4) - autoprefixer-rails (9.8.2) + autoprefixer-rails (9.8.6.3) execjs aws-eventstream (1.1.0) - aws-partitions (1.332.0) - aws-sdk-core (3.100.0) + aws-partitions (1.360.0) + aws-sdk-core (3.105.0) aws-eventstream (~> 1, >= 1.0.2) aws-partitions (~> 1, >= 1.239.0) aws-sigv4 (~> 1.1) jmespath (~> 1.0) - aws-sdk-kms (1.34.1) + aws-sdk-kms (1.37.0) aws-sdk-core (~> 3, >= 3.99.0) aws-sigv4 (~> 1.1) - aws-sdk-s3 (1.69.1) - aws-sdk-core (~> 3, >= 3.99.0) + aws-sdk-s3 (1.79.1) + aws-sdk-core (~> 3, >= 3.104.3) aws-sdk-kms (~> 1) aws-sigv4 (~> 1.1) - aws-sigv4 (1.2.0) + aws-sigv4 (1.2.2) aws-eventstream (~> 1, >= 1.0.2) axiom-types (0.1.1) descendants_tracker (~> 0.0.4) @@ -125,11 +125,11 @@ GEM barnes (0.0.8) multi_json (~> 1) statsd-ruby (~> 1.1) - bcrypt (3.1.13) + bcrypt (3.1.15) bindex (0.8.1) - bootsnap (1.4.6) + bootsnap (1.4.8) msgpack (~> 1.0) - brakeman (4.8.2) + brakeman (4.9.0) browser (4.2.0) builder (3.2.4) bullet (6.1.0) @@ -149,12 +149,12 @@ GEM crack (0.4.3) safe_yaml (~> 1.0.0) crass (1.0.6) - cypress-on-rails (1.7.0) + cypress-on-rails (1.8.0) rack database_cleaner (1.8.5) datetime_picker_rails (0.0.7) momentjs-rails (>= 2.8.1) - declarative (0.0.10) + declarative (0.0.20) declarative-option (0.1.0) descendants_tracker (0.0.4) thread_safe (~> 0.3, >= 0.3.1) @@ -169,41 +169,42 @@ GEM devise (> 3.5.2, < 5) rails (>= 4.2.0, < 6.1) sprockets (= 3.7.2) - diff-lcs (1.4) - digest-crc (0.5.1) + diff-lcs (1.4.4) + digest-crc (0.6.1) + rake (~> 13.0) docile (1.3.2) domain_name (0.5.20190701) unf (>= 0.0.5, < 1.0.0) - dotenv (2.7.5) - dotenv-rails (2.7.5) - dotenv (= 2.7.5) - railties (>= 3.2, < 6.1) + dotenv (2.7.6) + dotenv-rails (2.7.6) + dotenv (= 2.7.6) + railties (>= 3.2) equalizer (0.0.11) erubi (1.9.0) execjs (2.7.0) facebook-messenger (1.5.0) httparty (~> 0.13, >= 0.13.7) rack (>= 1.4.5) - factory_bot (6.0.2) + factory_bot (6.1.0) activesupport (>= 5.0.0) - factory_bot_rails (6.0.0) - factory_bot (~> 6.0.0) + factory_bot_rails (6.1.0) + factory_bot (~> 6.1.0) railties (>= 5.0.0) - faker (2.12.0) + faker (2.13.0) i18n (>= 1.6, < 2) faraday (1.0.1) multipart-post (>= 1.2, < 3) faraday_middleware (1.0.0) faraday (~> 1.0) - fcm (1.0.1) + fcm (1.0.2) faraday (~> 1.0.0) ffi (1.13.1) flag_shih_tzu (0.3.23) - foreman (0.87.1) - gli (2.19.1) + foreman (0.87.2) + gli (2.19.2) globalid (0.4.2) activesupport (>= 4.2.0) - google-api-client (0.41.0) + google-api-client (0.43.0) addressable (~> 2.5, >= 2.5.1) googleauth (~> 0.9) httpclient (>= 2.8.1, < 3.0) @@ -214,24 +215,24 @@ GEM google-cloud-core (1.5.0) google-cloud-env (~> 1.0) google-cloud-errors (~> 1.0) - google-cloud-env (1.3.2) + google-cloud-env (1.3.3) faraday (>= 0.17.3, < 2.0) google-cloud-errors (1.0.1) - google-cloud-storage (1.26.2) + google-cloud-storage (1.28.0) addressable (~> 2.5) digest-crc (~> 0.4) google-api-client (~> 0.33) google-cloud-core (~> 1.2) googleauth (~> 0.9) mini_mime (~> 1.0) - googleauth (0.13.0) + googleauth (0.13.1) faraday (>= 0.17.3, < 2.0) jwt (>= 1.4, < 3.0) memoist (~> 0.16) multi_json (~> 1.11) os (>= 0.9, < 2.0) signet (~> 0.14) - groupdate (5.0.0) + groupdate (5.1.0) activesupport (>= 5) haikunator (1.1.0) hana (1.3.6) @@ -256,8 +257,8 @@ GEM rails-dom-testing (>= 1, < 3) railties (>= 4.2.0) thor (>= 0.14, < 2.0) - json (2.3.0) - jwt (2.2.1) + json (2.3.1) + jwt (2.2.2) kaminari (1.2.1) activesupport (>= 4.1.0) kaminari-actionview (= 1.2.1) @@ -282,7 +283,7 @@ GEM listen (3.2.1) rb-fsevent (~> 0.10, >= 0.10.3) rb-inotify (~> 0.9, >= 0.9.10) - loofah (2.6.0) + loofah (2.7.0) crass (~> 1.0.2) nokogiri (>= 1.5.9) mail (2.7.1) @@ -302,7 +303,7 @@ GEM momentjs-rails (2.20.1) railties (>= 3.1) msgpack (1.3.3) - multi_json (1.14.1) + multi_json (1.15.0) multi_xml (0.6.0) multipart-post (2.1.1) netrc (0.11.0) @@ -311,7 +312,7 @@ GEM mini_portile2 (~> 2.4.0) oauth (0.5.4) orm_adapter (0.5.0) - os (1.1.0) + os (1.1.1) parallel (1.19.2) parser (2.7.1.4) ast (~> 2.4.1) @@ -331,8 +332,6 @@ GEM rack (>= 0.4) rack-cors (1.1.1) rack (>= 2.0.0) - rack-protection (2.0.8.1) - rack rack-proxy (0.6.5) rack rack-test (1.1.0) @@ -369,7 +368,7 @@ GEM rb-inotify (0.10.1) ffi (~> 1.0) redis (4.2.1) - redis-namespace (1.7.0) + redis-namespace (1.8.0) redis (>= 3.0.4) redis-rack-cache (2.2.1) rack-cache (>= 1.10, < 2) @@ -408,25 +407,25 @@ GEM rspec-mocks (~> 3.9) rspec-support (~> 3.9) rspec-support (3.9.3) - rubocop (0.86.0) + rubocop (0.89.1) parallel (~> 1.10) - parser (>= 2.7.0.1) + parser (>= 2.7.1.1) rainbow (>= 2.2.2, < 4.0) regexp_parser (>= 1.7) rexml - rubocop-ast (>= 0.0.3, < 1.0) + rubocop-ast (>= 0.3.0, < 1.0) ruby-progressbar (~> 1.7) unicode-display_width (>= 1.4.0, < 2.0) - rubocop-ast (0.0.3) - parser (>= 2.7.0.1) - rubocop-performance (1.6.1) - rubocop (>= 0.71.0) - rubocop-rails (2.6.0) + rubocop-ast (0.3.0) + parser (>= 2.7.1.4) + rubocop-performance (1.7.1) + rubocop (>= 0.82.0) + rubocop-rails (2.7.1) activesupport (>= 4.2.0) rack (>= 1.1) - rubocop (>= 0.82.0) - rubocop-rspec (1.40.0) - rubocop (>= 0.68.1) + rubocop (>= 0.87.0) + rubocop-rspec (1.43.2) + rubocop (~> 0.87) ruby-progressbar (1.10.1) safe_yaml (1.0.5) sass (3.7.4) @@ -442,7 +441,7 @@ GEM sprockets (> 3.0) sprockets-rails tilt - scout_apm (2.6.7) + scout_apm (2.6.9) parser scss_lint (0.59.0) sass (~> 3.5, >= 3.5.5) @@ -451,15 +450,14 @@ GEM activesupport (>= 4) selectize-rails (0.12.6) semantic_range (2.3.0) - sentry-raven (3.0.0) + sentry-raven (3.0.3) faraday (>= 1.0) - shoulda-matchers (4.3.0) + shoulda-matchers (4.4.1) activesupport (>= 4.2.0) - sidekiq (6.0.7) + sidekiq (6.1.1) connection_pool (>= 2.2.2) rack (~> 2.0) - rack-protection (>= 2.0.0) - redis (>= 4.1.0) + redis (>= 4.2.0) signet (0.14.0) addressable (~> 2.3) faraday (>= 0.17.3, < 2.0) @@ -470,14 +468,13 @@ GEM json (>= 1.8, < 3) simplecov-html (~> 0.10.0) simplecov-html (0.10.2) - slack-ruby-client (0.14.6) - activesupport - faraday (>= 0.9) + slack-ruby-client (0.15.0) + faraday (>= 1.0) faraday_middleware gli hashie websocket-driver - spring (2.1.0) + spring (2.1.1) spring-watcher-listen (2.0.1) listen (>= 2.7, < 4.0) spring (>= 1.2, < 3.0) @@ -494,7 +491,7 @@ GEM faraday inflecto virtus - telephone_number (1.4.7) + telephone_number (1.4.9) thor (1.0.1) thread_safe (0.3.6) tilt (2.0.10) @@ -519,7 +516,7 @@ GEM unf_ext (0.0.7.7) unicode-display_width (1.7.0) uniform_notifier (1.13.0) - valid_email2 (3.2.2) + valid_email2 (3.3.1) activemodel (>= 3.2) mail (~> 2.5) virtus (1.0.5) @@ -529,7 +526,7 @@ GEM equalizer (~> 0.0, >= 0.0.9) warden (1.2.8) rack (>= 2.0.6) - web-console (4.0.3) + web-console (4.0.4) actionview (>= 6.0.0) activemodel (>= 6.0.0) bindex (>= 0.4.0) @@ -546,7 +543,7 @@ GEM webpush (1.0.0) hkdf (~> 0.2) jwt (~> 2.0) - websocket-driver (0.7.2) + websocket-driver (0.7.3) websocket-extensions (>= 0.1.0) websocket-extensions (0.1.5) wisper (2.0.0) @@ -575,7 +572,7 @@ DEPENDENCIES devise devise_token_auth dotenv-rails - facebook-messenger + facebook-messenger (= 1.5.0) factory_bot_rails faker fcm diff --git a/app/builders/messages/facebook/message_builder.rb b/app/builders/messages/facebook/message_builder.rb index 92fc28c0e..40b0aebc2 100644 --- a/app/builders/messages/facebook/message_builder.rb +++ b/app/builders/messages/facebook/message_builder.rb @@ -7,7 +7,7 @@ class Messages::Facebook::MessageBuilder attr_reader :response - def initialize(response, inbox, outgoing_echo = false) + def initialize(response, inbox, outgoing_echo: false) @response = response @inbox = inbox @outgoing_echo = outgoing_echo diff --git a/app/controllers/api/v1/accounts/conversations_controller.rb b/app/controllers/api/v1/accounts/conversations_controller.rb index c652c3634..2f1bdcbfb 100644 --- a/app/controllers/api/v1/accounts/conversations_controller.rb +++ b/app/controllers/api/v1/accounts/conversations_controller.rb @@ -41,9 +41,10 @@ class Api::V1::Accounts::ConversationsController < Api::V1::Accounts::BaseContro end def toggle_typing_status - if params[:typing_status] == 'on' + case params[:typing_status] + when 'on' trigger_typing_event(CONVERSATION_TYPING_ON) - elsif params[:typing_status] == 'off' + when 'off' trigger_typing_event(CONVERSATION_TYPING_OFF) end head :ok diff --git a/app/controllers/api/v1/accounts/inbox_members_controller.rb b/app/controllers/api/v1/accounts/inbox_members_controller.rb index 9ad2ef93d..fc960d9ec 100644 --- a/app/controllers/api/v1/accounts/inbox_members_controller.rb +++ b/app/controllers/api/v1/accounts/inbox_members_controller.rb @@ -12,7 +12,7 @@ class Api::V1::Accounts::InboxMembersController < Api::V1::Accounts::BaseControl end def show - @agents = Current.account.users.where(id: @inbox.members.pluck(:user_id)) + @agents = Current.account.users.where(id: @inbox.members.select(:user_id)) end private diff --git a/app/controllers/api/v1/accounts/inboxes_controller.rb b/app/controllers/api/v1/accounts/inboxes_controller.rb index d2b0dcb60..6c4a3cf7d 100644 --- a/app/controllers/api/v1/accounts/inboxes_controller.rb +++ b/app/controllers/api/v1/accounts/inboxes_controller.rb @@ -91,7 +91,7 @@ class Api::V1::Accounts::InboxesController < Api::V1::Accounts::BaseController :welcome_tagline, :webhook_url, :email, - selected_feature_flags: [] + { selected_feature_flags: [] } ]) end end diff --git a/app/controllers/api/v1/widget/conversations_controller.rb b/app/controllers/api/v1/widget/conversations_controller.rb index 66b54d4b9..ac41c86c2 100644 --- a/app/controllers/api/v1/widget/conversations_controller.rb +++ b/app/controllers/api/v1/widget/conversations_controller.rb @@ -26,9 +26,10 @@ class Api::V1::Widget::ConversationsController < Api::V1::Widget::BaseController def toggle_typing head :ok && return if conversation.nil? - if permitted_params[:typing_status] == 'on' + case permitted_params[:typing_status] + when 'on' trigger_typing_event(CONVERSATION_TYPING_ON) - elsif permitted_params[:typing_status] == 'off' + when 'off' trigger_typing_event(CONVERSATION_TYPING_OFF) end diff --git a/app/controllers/api/v1/widget/messages_controller.rb b/app/controllers/api/v1/widget/messages_controller.rb index afc0d71b2..ce53d9b3e 100644 --- a/app/controllers/api/v1/widget/messages_controller.rb +++ b/app/controllers/api/v1/widget/messages_controller.rb @@ -112,7 +112,7 @@ class Api::V1::Widget::MessagesController < Api::V1::Widget::BaseController end def message_update_params - params.permit(message: [submitted_values: [:name, :title, :value]]) + params.permit(message: [{ submitted_values: [:name, :title, :value] }]) end def permitted_params diff --git a/app/controllers/devise_overrides/confirmations_controller.rb b/app/controllers/devise_overrides/confirmations_controller.rb index 96d16eafe..057e77b12 100644 --- a/app/controllers/devise_overrides/confirmations_controller.rb +++ b/app/controllers/devise_overrides/confirmations_controller.rb @@ -25,6 +25,6 @@ class DeviseOverrides::ConfirmationsController < Devise::ConfirmationsController user.reset_password_token = enc user.reset_password_sent_at = Time.now.utc user.save(validate: false) - '/app/auth/password/edit?config=default&redirect_url=&reset_password_token=' + raw + "/app/auth/password/edit?config=default&redirect_url=&reset_password_token=#{raw}" end end diff --git a/app/controllers/twitter/callbacks_controller.rb b/app/controllers/twitter/callbacks_controller.rb index f317f3ffa..b3cafbe12 100644 --- a/app/controllers/twitter/callbacks_controller.rb +++ b/app/controllers/twitter/callbacks_controller.rb @@ -27,7 +27,7 @@ class Twitter::CallbacksController < Twitter::BaseController end def account - @account ||= Account.find_by!(id: account_id) + @account ||= Account.find(account_id) end def twitter_app_redirect_url diff --git a/app/dispatchers/async_dispatcher.rb b/app/dispatchers/async_dispatcher.rb index b3a2d8139..e5fbdd7f7 100644 --- a/app/dispatchers/async_dispatcher.rb +++ b/app/dispatchers/async_dispatcher.rb @@ -9,11 +9,10 @@ class AsyncDispatcher < BaseDispatcher end def listeners - listeners = [ + [ EventListener.instance, WebhookListener.instance, InstallationWebhookListener.instance, HookListener.instance ] - listeners end end diff --git a/app/finders/conversation_finder.rb b/app/finders/conversation_finder.rb index 495bddf63..5ca1e12f6 100644 --- a/app/finders/conversation_finder.rb +++ b/app/finders/conversation_finder.rb @@ -67,9 +67,10 @@ class ConversationFinder end def filter_by_assignee_type - if @assignee_type == 'me' + case @assignee_type + when 'me' @conversations = @conversations.assigned_to(current_user) - elsif @assignee_type == 'unassigned' + when 'unassigned' @conversations = @conversations.unassigned end @conversations diff --git a/app/jobs/send_reply_job.rb b/app/jobs/send_reply_job.rb index 4f1b6f839..6d0d171c5 100644 --- a/app/jobs/send_reply_job.rb +++ b/app/jobs/send_reply_job.rb @@ -4,11 +4,12 @@ class SendReplyJob < ApplicationJob def perform(message_id) message = Message.find(message_id) channel_name = message.conversation.inbox.channel.class.to_s - if channel_name == 'Channel::FacebookPage' + case channel_name + when 'Channel::FacebookPage' ::Facebook::SendOnFacebookService.new(message: message).perform - elsif channel_name == 'Channel::TwitterProfile' + when 'Channel::TwitterProfile' ::Twitter::SendOnTwitterService.new(message: message).perform - elsif channel_name == 'Channel::TwilioSms' + when 'Channel::TwilioSms' ::Twilio::SendOnTwilioService.new(message: message).perform end end diff --git a/app/listeners/action_cable_listener.rb b/app/listeners/action_cable_listener.rb index 1baccfc78..94a0828c4 100644 --- a/app/listeners/action_cable_listener.rb +++ b/app/listeners/action_cable_listener.rb @@ -120,8 +120,7 @@ class ActionCableListener < BaseListener def user_tokens(account, agents) agent_tokens = agents.pluck(:pubsub_token) admin_tokens = account.administrators.pluck(:pubsub_token) - pubsub_tokens = (agent_tokens + admin_tokens).uniq - pubsub_tokens + (agent_tokens + admin_tokens).uniq end def contact_token(contact, message) diff --git a/app/models/channel/twitter_profile.rb b/app/models/channel/twitter_profile.rb index be32087cd..1b1011014 100644 --- a/app/models/channel/twitter_profile.rb +++ b/app/models/channel/twitter_profile.rb @@ -63,7 +63,7 @@ class Channel::TwitterProfile < ApplicationRecord def unsubscribe ### Fix unsubscription with new endpoint unsubscribe_response = twitter_client.remove_subscription(user_id: profile_id) - Rails.logger.info 'TWITTER_UNSUBSCRIBE: ' + unsubscribe_response.body.to_s + Rails.logger.info "TWITTER_UNSUBSCRIBE: #{unsubscribe_response.body}" rescue StandardError => e Rails.logger.info e end diff --git a/app/models/concerns/featurable.rb b/app/models/concerns/featurable.rb index 5112d170e..01d513b63 100644 --- a/app/models/concerns/featurable.rb +++ b/app/models/concerns/featurable.rb @@ -54,7 +54,7 @@ module Featurable config = InstallationConfig.find_by(name: 'ACCOUNT_LEVEL_FEATURE_DEFAULTS') return true if config.blank? - features_to_enabled = config.value.select { |f| f[:enabled] }.map { |f| f[:name] } + features_to_enabled = config.value.select { |f| f[:enabled] }.pluck(:name) enable_features(*features_to_enabled) end end diff --git a/app/models/conversation.rb b/app/models/conversation.rb index 90b804a1d..98d876982 100644 --- a/app/models/conversation.rb +++ b/app/models/conversation.rb @@ -48,13 +48,13 @@ class Conversation < ApplicationRecord has_many :messages, dependent: :destroy, autosave: true - before_create :set_display_id, unless: :display_id? before_create :set_bot_conversation - after_create_commit :notify_conversation_creation - after_save :run_round_robin + before_create :set_display_id, unless: :display_id? # wanted to change this to after_update commit. But it ended up creating a loop # reinvestigate in future and identity the implications after_update :notify_status_change, :create_activity + after_create_commit :notify_conversation_creation + after_save :run_round_robin acts_as_taggable_on :labels diff --git a/app/models/integrations/app.rb b/app/models/integrations/app.rb index 645ff3d92..f5e783f04 100644 --- a/app/models/integrations/app.rb +++ b/app/models/integrations/app.rb @@ -46,7 +46,7 @@ class Integrations::App def enabled?(account) case params[:id] when 'slack' - account.hooks.where(app_id: id).exists? + account.hooks.exists?(app_id: id) else true end diff --git a/app/models/notification.rb b/app/models/notification.rb index 08d7eca28..8863fbffa 100644 --- a/app/models/notification.rb +++ b/app/models/notification.rb @@ -71,8 +71,9 @@ class Notification < ApplicationRecord def process_notification_delivery Notification::PushNotificationJob.perform_later(self) - - # Queuing after 2 minutes so that we won't send emails for read notifications - Notification::EmailNotificationJob.set(wait: 2.minutes).perform_later(self) + # Should we do something about the case where user subscribed to both push and email ? + # In future, we could probably add condition here to enqueue the job for 30 seconds later + # when push enabled and then check in email job whether notification has been read already. + Notification::EmailNotificationJob.perform_later(self) end end diff --git a/app/models/user.rb b/app/models/user.rb index 5498ee45e..33faa8ee6 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -127,8 +127,7 @@ class User < ApplicationRecord end def serializable_hash(options = nil) - serialized_user = super(options).merge(confirmed: confirmed?) - serialized_user + super(options).merge(confirmed: confirmed?) end def push_event_data diff --git a/app/policies/application_policy.rb b/app/policies/application_policy.rb index f08a47898..b59237719 100644 --- a/app/policies/application_policy.rb +++ b/app/policies/application_policy.rb @@ -2,7 +2,7 @@ class ApplicationPolicy attr_reader :user_context, :user, :record, :account, :account_user def initialize(user_context, record) - @user_context = user_context = user_context + @user_context = user_context @user = user_context[:user] @account = user_context[:account] @account_user = user_context[:account_user] @@ -14,7 +14,7 @@ class ApplicationPolicy end def show? - scope.where(id: record.id).exists? + scope.exists?(id: record.id) end def create? @@ -45,7 +45,7 @@ class ApplicationPolicy attr_reader :user_context, :user, :scope, :account, :account_user def initialize(user_context, scope) - @user_context = user_context = user_context + @user_context = user_context @user = user_context[:user] @account = user_context[:account] @account_user = user_context[:account_user] diff --git a/app/presenters/mail_presenter.rb b/app/presenters/mail_presenter.rb index f97dd1b4c..1cb0d5056 100644 --- a/app/presenters/mail_presenter.rb +++ b/app/presenters/mail_presenter.rb @@ -88,10 +88,10 @@ class MailPresenter < SimpleDelegator return sender_agnostic_regexes if @account.nil? || account_support_email.blank? [ - Regexp.new("From:\s*" + Regexp.escape(account_support_email), Regexp::IGNORECASE), - Regexp.new('<' + Regexp.escape(account_support_email) + '>', Regexp::IGNORECASE), - Regexp.new(Regexp.escape(account_support_email) + "\s+wrote:", Regexp::IGNORECASE), - Regexp.new('On(.*)' + Regexp.escape(account_support_email) + '(.*)wrote:', Regexp::IGNORECASE) + Regexp.new("From:\s* #{Regexp.escape(account_support_email)}", Regexp::IGNORECASE), + Regexp.new("<#{Regexp.escape(account_support_email)}>", Regexp::IGNORECASE), + Regexp.new("#{Regexp.escape(account_support_email)}\s+wrote:", Regexp::IGNORECASE), + Regexp.new("On(.*)#{Regexp.escape(account_support_email)}(.*)wrote:", Regexp::IGNORECASE) ] + sender_agnostic_regexes end diff --git a/app/services/twitter/send_on_twitter_service.rb b/app/services/twitter/send_on_twitter_service.rb index 7d08b7535..832d0ff66 100644 --- a/app/services/twitter/send_on_twitter_service.rb +++ b/app/services/twitter/send_on_twitter_service.rb @@ -56,7 +56,7 @@ class Twitter::SendOnTwitterService < Base::SendOnChannelService tweet_data = response.body message.update!(source_id: tweet_data['id_str']) else - Rails.logger.info 'TWITTER_TWEET_REPLY_ERROR' + response.body + Rails.logger.info "TWITTER_TWEET_REPLY_ERROR #{response.body}" end end end diff --git a/app/services/twitter/webhook_subscribe_service.rb b/app/services/twitter/webhook_subscribe_service.rb index 3fae23e8f..7d7734231 100644 --- a/app/services/twitter/webhook_subscribe_service.rb +++ b/app/services/twitter/webhook_subscribe_service.rb @@ -19,7 +19,7 @@ class Twitter::WebhookSubscribeService delegate :twitter_client, to: :channel def inbox - Inbox.find_by!(id: inbox_id) + Inbox.find(inbox_id) end def twitter_url @@ -38,12 +38,12 @@ class Twitter::WebhookSubscribeService def unregister_webhook(webhook) unregister_response = twitter_client.unregister_webhook(id: webhook.try(:[], 'id')) - Rails.logger.info 'TWITTER_UNREGISTER_WEBHOOK: ' + unregister_response.body.to_s + Rails.logger.info "TWITTER_UNREGISTER_WEBHOOK: #{unregister_response.body}" end def register_webhook register_response = twitter_client.register_webhook(url: twitter_url) - Rails.logger.info 'TWITTER_UNREGISTER_WEBHOOK: ' + register_response.body.to_s + Rails.logger.info "TWITTER_UNREGISTER_WEBHOOK: #{register_response.body}" end def subscription? diff --git a/app/views/super_admin/application/_navigation.html.erb b/app/views/super_admin/application/_navigation.html.erb index f4c66cc2e..54c2ecc1b 100644 --- a/app/views/super_admin/application/_navigation.html.erb +++ b/app/views/super_admin/application/_navigation.html.erb @@ -36,7 +36,7 @@ as defined by the routes in the `admin/` namespace <%= link_to( display_resource_name(resource), - [namespace, resource_index_route_key(resource)], + resource_index_route(resource) ) if valid_action? :index, resource %> <% end %> diff --git a/config/environments/production.rb b/config/environments/production.rb index f8d50ab16..5b9acb497 100644 --- a/config/environments/production.rb +++ b/config/environments/production.rb @@ -78,12 +78,12 @@ Rails.application.configure do # config.logger = ActiveSupport::TaggedLogging.new(Syslog::Logger.new 'app-name') if ENV['RAILS_LOG_TO_STDOUT'].present? - logger = ActiveSupport::Logger.new(STDOUT) + logger = ActiveSupport::Logger.new($stdout) logger.formatter = config.log_formatter config.logger = ActiveSupport::TaggedLogging.new(logger) else config.logger = ActiveSupport::Logger.new( - Rails.root.join('log', Rails.env + '.log'), + Rails.root.join("log/#{Rails.env}.log"), 1, ENV.fetch('LOG_SIZE', '1024').to_i.megabytes ) diff --git a/config/environments/staging.rb b/config/environments/staging.rb index 53c0934c7..5243a2d59 100644 --- a/config/environments/staging.rb +++ b/config/environments/staging.rb @@ -92,10 +92,10 @@ Rails.application.configure do # Use a different logger for distributed setups. # require 'syslog/logger' - config.logger = ActiveSupport::Logger.new(Rails.root.join('log', Rails.env + '.log'), 1, ENV.fetch('LOG_SIZE', '1024').to_i.megabytes) + config.logger = ActiveSupport::Logger.new(Rails.root.join("log/#{Rails.env}.log"), 1, ENV.fetch('LOG_SIZE', '1024').to_i.megabytes) if ENV['RAILS_LOG_TO_STDOUT'].present? - logger = ActiveSupport::Logger.new(STDOUT) + logger = ActiveSupport::Logger.new($stdout) logger.formatter = config.log_formatter config.logger = ActiveSupport::TaggedLogging.new(logger) end diff --git a/config/initializers/sentry.rb b/config/initializers/sentry.rb index 7efef3a92..1237c47b5 100644 --- a/config/initializers/sentry.rb +++ b/config/initializers/sentry.rb @@ -21,7 +21,7 @@ module QueryTrace def log_info_with_trace(event) log_info_without_trace(event) trace_log = Rails.backtrace_cleaner.clean(caller).first - logger.debug(" \\_ \e[33mCalled from:\e[0m " + trace_log) if trace_log && event.payload[:name] != 'SCHEMA' + logger.debug(" \\_ \e[33mCalled from:\e[0m #{trace_log}") if trace_log && event.payload[:name] != 'SCHEMA' end end diff --git a/lib/custom_exceptions/base.rb b/lib/custom_exceptions/base.rb index e18d9de52..3076b8847 100644 --- a/lib/custom_exceptions/base.rb +++ b/lib/custom_exceptions/base.rb @@ -13,5 +13,6 @@ class CustomExceptions::Base < ::StandardError def initialize(data) @data = data + super() end end diff --git a/lib/integrations/facebook/message_creator.rb b/lib/integrations/facebook/message_creator.rb index 2669b840a..09d9526fe 100644 --- a/lib/integrations/facebook/message_creator.rb +++ b/lib/integrations/facebook/message_creator.rb @@ -29,7 +29,7 @@ class Integrations::Facebook::MessageCreator def create_agent_message Channel::FacebookPage.where(page_id: response.sender_id).each do |page| - mb = Messages::Facebook::MessageBuilder.new(response, page.inbox, true) + mb = Messages::Facebook::MessageBuilder.new(response, page.inbox, outgoing_echo: true) mb.perform end end diff --git a/spec/mailboxes/default_mailbox_spec.rb b/spec/mailboxes/default_mailbox_spec.rb deleted file mode 100644 index cb44f5f4b..000000000 --- a/spec/mailboxes/default_mailbox_spec.rb +++ /dev/null @@ -1,5 +0,0 @@ -require 'rails_helper' - -RSpec.describe DefaultMailbox, type: :mailbox do - pending "add some examples to (or delete) #{__FILE__}" -end diff --git a/spec/models/super_admin_spec.rb b/spec/models/super_admin_spec.rb deleted file mode 100644 index e9a03b361..000000000 --- a/spec/models/super_admin_spec.rb +++ /dev/null @@ -1,5 +0,0 @@ -require 'rails_helper' - -RSpec.describe SuperAdmin, type: :model do - pending "add some examples to (or delete) #{__FILE__}" -end