Skip to content

Commit

Permalink
issue #151: add rubocop to ci (#168)
Browse files Browse the repository at this point in the history
  • Loading branch information
sabunt authored and sojan-official committed Oct 21, 2019
1 parent ba8f055 commit a7787e0
Show file tree
Hide file tree
Showing 7 changed files with 221 additions and 9 deletions.
4 changes: 4 additions & 0 deletions .circleci/config.yml
Expand Up @@ -33,6 +33,10 @@ jobs:
name: Bundle Install
command: bundle check || bundle install

- run:
name: Rubocop
command: bundle exec rubocop

# Store bundle cache
- save_cache:
key: chatwoot-bundle-v2-{{ checksum "Gemfile.lock" }}
Expand Down
14 changes: 13 additions & 1 deletion .rubocop.yml
@@ -1,3 +1,5 @@
inherit_from: .rubocop_todo.yml

Metrics/LineLength:
Max: 150
Documentation:
Expand All @@ -8,5 +10,15 @@ Style/SymbolArray:
Enabled: false
Metrics/BlockLength:
Exclude:
- db/migrate/**/*
- spec/**/*
Style/ClassAndModuleChildren:
EnforcedStyle: compact
AllCops:
Exclude:
- db/*
- bin/**/*
- db/**/*
- config/**/*
- public/**/*
- vendor/**/*
- node_modules/**/*
184 changes: 184 additions & 0 deletions .rubocop_todo.yml
@@ -0,0 +1,184 @@
# This configuration was generated by
# `rubocop --auto-gen-config`
# on 2019-10-20 22:59:04 +0300 using RuboCop version 0.75.1.
# The point is for the user to remove these configuration records
# one by one as the offenses are removed from the code base.
# Note that changes in the inspected code, or installation of new
# versions of RuboCop, may require this file to be generated again.

# Offense count: 1
# Configuration parameters: EnforcedStyle.
# SupportedStyles: native, lf, crlf
Layout/EndOfLine:
Exclude:
- 'deploy/after_restart.rb'

# Offense count: 1
Lint/DuplicateMethods:
Exclude:
- 'app/controllers/api/v1/reports_controller.rb'

# Offense count: 1
Lint/RescueException:
Exclude:
- 'app/builders/messages/message_builder.rb'

# Offense count: 4
Lint/ShadowingOuterLocalVariable:
Exclude:
- 'app/controllers/api/v1/reports_controller.rb'

# Offense count: 3
# Configuration parameters: AllowKeywordBlockArguments.
Lint/UnderscorePrefixedVariableName:
Exclude:
- 'app/models/account.rb'
- 'deploy/before_symlink.rb'

# Offense count: 18
Lint/UselessAssignment:
Exclude:
- 'app/controllers/api/v1/callbacks_controller.rb'
- 'app/controllers/api/v1/facebook_indicators_controller.rb'
- 'app/listeners/pusher_listener.rb'
- 'app/listeners/reporting_listener.rb'
- 'app/models/channel/facebook_page.rb'
- 'app/models/facebook_page.rb'

# Offense count: 14
Metrics/AbcSize:
Max: 26

# Offense count: 1
# Configuration parameters: CountComments, ExcludedMethods.
# ExcludedMethods: refine
Metrics/BlockLength:
Max: 30

# Offense count: 2
Metrics/CyclomaticComplexity:
Max: 7

# Offense count: 4
# Cop supports --auto-correct.
# Configuration parameters: AutoCorrect, AllowHeredoc, AllowURI, URISchemes, IgnoreCopDirectives, IgnoredPatterns.
# URISchemes: http, https
Metrics/LineLength:
Max: 497

# Offense count: 9
# Configuration parameters: CountComments, ExcludedMethods.
Metrics/MethodLength:
Max: 19

# Offense count: 1
Metrics/PerceivedComplexity:
Max: 8

# Offense count: 6
Naming/AccessorMethodName:
Exclude:
- 'app/builders/report_builder.rb'
- 'app/controllers/api/v1/accounts_controller.rb'
- 'app/controllers/api/v1/callbacks_controller.rb'
- 'app/controllers/api/v1/conversations_controller.rb'
- 'app/controllers/passwords_controller.rb'

# Offense count: 9
# Configuration parameters: EnforcedStyleForLeadingUnderscores.
# SupportedStylesForLeadingUnderscores: disallowed, required, optional
Naming/MemoizedInstanceVariableName:
Exclude:
- 'app/controllers/api/base_controller.rb'
- 'app/controllers/api/v1/conversations_controller.rb'
- 'app/controllers/api/v1/webhooks_controller.rb'
- 'app/controllers/application_controller.rb'
- 'app/models/message.rb'
- 'lib/integrations/widget/outgoing_message_builder.rb'
- 'lib/webhooks/chargebee.rb'

# Offense count: 15
# Cop supports --auto-correct.
# Configuration parameters: AutoCorrect, EnforcedStyle.
# SupportedStyles: nested, compact
Style/ClassAndModuleChildren:
Exclude:
- 'app/builders/messages/message_builder.rb'
- 'app/controllers/api/v1/inbox_members_controller.rb'
- 'app/models/channel/facebook_page.rb'
- 'app/models/channel/web_widget.rb'
- 'app/presenters/conversations/event_data_presenter.rb'
- 'app/services/facebook/send_reply_service.rb'
- 'lib/integrations/facebook/delivery_status.rb'
- 'lib/integrations/facebook/message_creator.rb'
- 'lib/integrations/facebook/message_parser.rb'
- 'lib/integrations/widget/incoming_message_builder.rb'

# Offense count: 4
Style/CommentedKeyword:
Exclude:
- 'app/controllers/api/v1/callbacks_controller.rb'
- 'app/controllers/api/v1/conversations/assignments_controller.rb'
- 'app/controllers/api/v1/conversations/labels_controller.rb'
- 'app/controllers/api/v1/labels_controller.rb'

# Offense count: 1
# Configuration parameters: EnforcedStyle.
# SupportedStyles: annotated, template, unannotated
Style/FormatStringToken:
Exclude:
- 'lib/constants/redis_keys.rb'

# Offense count: 4
# Configuration parameters: AllowedVariables.
Style/GlobalVars:
Exclude:
- 'lib/redis/alfred.rb'

# Offense count: 7
# Configuration parameters: MinBodyLength.
Style/GuardClause:
Exclude:
- 'app/builders/account_builder.rb'
- 'app/models/attachment.rb'
- 'app/models/message.rb'
- 'lib/webhooks/chargebee.rb'

# Offense count: 4
Style/IdenticalConditionalBranches:
Exclude:
- 'app/controllers/api/v1/reports_controller.rb'

# Offense count: 1
# Configuration parameters: AllowIfModifier.
Style/IfInsideElse:
Exclude:
- 'app/finders/conversation_finder.rb'

# Offense count: 1
# Cop supports --auto-correct.
Style/IfUnlessModifier:
Exclude:
- 'deploy/before_symlink.rb'

# Offense count: 1
Style/MixinUsage:
Exclude:
- 'app/bot/bot.rb'

# Offense count: 1
# Cop supports --auto-correct.
# Configuration parameters: AutoCorrect, EnforcedStyle, IgnoredMethods.
# SupportedStyles: predicate, comparison
Style/NumericPredicate:
Exclude:
- 'spec/**/*'
- 'app/controllers/api/v1/callbacks_controller.rb'

# Offense count: 1
# Cop supports --auto-correct.
# Configuration parameters: EnforcedStyle.
# SupportedStyles: implicit, explicit
Style/RescueStandardError:
Exclude:
- 'app/models/channel/facebook_page.rb'
5 changes: 4 additions & 1 deletion app/controllers/api/v1/callbacks_controller.rb
Expand Up @@ -10,7 +10,10 @@ def register_facebook_page
page_name = params[:page_name]
page_id = params[:page_id]
inbox_name = params[:inbox_name]
facebook_channel = current_account.facebook_pages.create!(name: page_name, page_id: page_id, user_access_token: user_access_token, page_access_token: page_access_token, remote_avatar_url: set_avatar(page_id))
facebook_channel = current_account.facebook_pages.create!(
name: page_name, page_id: page_id, user_access_token: user_access_token,
page_access_token: page_access_token, remote_avatar_url: set_avatar(page_id)
)
inbox = current_account.inboxes.create!(name: inbox_name, channel: facebook_channel)
render json: inbox
end
Expand Down
11 changes: 10 additions & 1 deletion app/models/inbox.rb
Expand Up @@ -44,6 +44,15 @@ def round_robin_key
end

def subscribe_webhook
Facebook::Messenger::Subscriptions.subscribe(access_token: channel.page_access_token, subscribed_fields: %w[message_mention messages messaging_account_linking messaging_checkout_updates message_echoes message_deliveries messaging_game_plays messaging_optins messaging_optouts messaging_payments messaging_postbacks messaging_pre_checkouts message_reads messaging_referrals messaging_handovers messaging_policy_enforcement messaging_page_feedback messaging_appointments messaging_direct_sends])
Facebook::Messenger::Subscriptions.subscribe(
access_token: channel.page_access_token,
subscribed_fields: %w[
message_mention messages messaging_account_linking messaging_checkout_updates
message_echoes message_deliveries messaging_game_plays messaging_optins messaging_optouts
messaging_payments messaging_postbacks messaging_pre_checkouts message_reads messaging_referrals
messaging_handovers messaging_policy_enforcement messaging_page_feedback
messaging_appointments messaging_direct_sends
]
)
end
end
8 changes: 6 additions & 2 deletions deploy/before_symlink.rb
Expand Up @@ -33,8 +33,12 @@
# end

# migrations
master_node = node[:opsworks][:layers]['application'][:instances].keys.min if node[:opsworks][:layers] && node[:opsworks][:layers]['application'] && node[:opsworks][:layers]['application'][:instances]
if master_node && node[:opsworks][:instance][:hostname].include?(master_node)
if (node[:opsworks][:layers] && node[:opsworks][:layers]['application']) &&
(endnode[:opsworks][:layers]['application'][:instances])
master_node = node[:opsworks][:layers]['application'][:instances].keys.min
end

if master_node && :node[:opsworks][:instance][:hostname].include?(master_node)
execute 'rake db:migrate' do
cwd release_path
command 'bundle exec rake db:migrate --trace'
Expand Down
4 changes: 0 additions & 4 deletions lib/integrations/facebook/message_parser.rb
Expand Up @@ -68,7 +68,3 @@ def sent_from_chatwoot_app?
# }
# }
# }

# ECHO from own app

# {"sender"=>{"id"=>"379460302081528"}, "recipient"=>{"id"=>"403092229814994"}, "timestamp"=>1493270145685, "message"=>{"is_echo"=>true, "app_id"=>1847193292179369, "mid"=>"mid.$cAAED7rlYNsVh3xtylVbrdYqH8iEp", "seq"=>167221, "text"=>"sad"}}

0 comments on commit a7787e0

Please sign in to comment.