diff --git a/.github/workflows/lock.yml b/.github/workflows/lock.yml index c42909856..5420e829b 100644 --- a/.github/workflows/lock.yml +++ b/.github/workflows/lock.yml @@ -25,13 +25,5 @@ jobs: with: issue-inactive-days: '30' issue-lock-reason: 'resolved' - issue-comment: > - This issue has been automatically locked since there - has not been any recent activity after it was closed. - Please open a new issue for related bugs. pr-inactive-days: '30' pr-lock-reason: 'resolved' - pr-comment: > - This pull request has been automatically locked since there - has not been any recent activity after it was closed. - Please open a new issue for related bugs. diff --git a/Gemfile b/Gemfile index 7d34ffda0..a0624fee4 100644 --- a/Gemfile +++ b/Gemfile @@ -111,12 +111,12 @@ gem 'elastic-apm', require: false gem 'newrelic_rpm', require: false gem 'newrelic-sidekiq-metrics', '>= 1.6.2', require: false gem 'scout_apm', require: false -gem 'sentry-rails', '>= 5.18.2', require: false +gem 'sentry-rails', '>= 5.19.0', require: false gem 'sentry-ruby', require: false -gem 'sentry-sidekiq', '>= 5.18.2', require: false +gem 'sentry-sidekiq', '>= 5.19.0', require: false ##-- background job processing --## -gem 'sidekiq', '>= 7.3.0' +gem 'sidekiq', '>= 7.3.1' # We want cron jobs gem 'sidekiq-cron', '>= 1.12.0' @@ -228,7 +228,7 @@ group :development, :test do gem 'mock_redis' gem 'pry-rails' gem 'rspec_junit_formatter' - gem 'rspec-rails', '>= 6.1.3' + gem 'rspec-rails', '>= 6.1.4' gem 'rubocop', require: false gem 'rubocop-performance', require: false gem 'rubocop-rails', require: false diff --git a/Gemfile.lock b/Gemfile.lock index cf522bf39..1bd5f4f05 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -169,7 +169,7 @@ GEM climate_control (1.2.0) coderay (1.1.3) commonmarker (0.23.10) - concurrent-ruby (1.3.3) + concurrent-ruby (1.3.4) connection_pool (2.4.1) crack (1.0.0) bigdecimal @@ -230,7 +230,7 @@ GEM ruby2_keywords email_reply_trimmer (0.1.13) erubi (1.13.0) - et-orbi (1.2.7) + et-orbi (1.2.11) tzinfo execjs (2.8.1) facebook-messenger (2.0.1) @@ -268,8 +268,8 @@ GEM rake flag_shih_tzu (0.3.23) foreman (0.87.2) - fugit (1.9.0) - et-orbi (~> 1, >= 1.2.7) + fugit (1.11.1) + et-orbi (~> 1, >= 1.2.11) raabro (~> 1.4) gapic-common (0.18.0) faraday (>= 1.9, < 3.a) @@ -467,7 +467,7 @@ GEM mini_magick (4.12.0) mini_mime (1.1.5) mini_portile2 (2.8.7) - minitest (5.24.1) + minitest (5.25.1) mock_redis (0.36.0) ruby2_keywords msgpack (1.7.0) @@ -480,7 +480,7 @@ GEM uri net-http-persistent (4.0.2) connection_pool (~> 2.2) - net-imap (0.4.12) + net-imap (0.4.14) date net-protocol net-pop (0.1.2) @@ -644,7 +644,7 @@ GEM rspec-mocks (3.13.1) diff-lcs (>= 1.2.0, < 2.0) rspec-support (~> 3.13.0) - rspec-rails (6.1.3) + rspec-rails (6.1.4) actionpack (>= 6.1) activesupport (>= 6.1) railties (>= 6.1) @@ -710,19 +710,19 @@ GEM activesupport (>= 4) selectize-rails (0.12.6) semantic_range (3.0.0) - sentry-rails (5.18.2) + sentry-rails (5.19.0) railties (>= 5.0) - sentry-ruby (~> 5.18.2) - sentry-ruby (5.18.2) + sentry-ruby (~> 5.19.0) + sentry-ruby (5.19.0) bigdecimal concurrent-ruby (~> 1.0, >= 1.0.2) - sentry-sidekiq (5.18.2) - sentry-ruby (~> 5.18.2) + sentry-sidekiq (5.19.0) + sentry-ruby (~> 5.19.0) sidekiq (>= 3.0) sexp_processor (4.17.0) shoulda-matchers (5.3.0) activesupport (>= 5.2.0) - sidekiq (7.3.0) + sidekiq (7.3.1) concurrent-ruby (< 2) connection_pool (>= 2.3.0) logger @@ -796,7 +796,7 @@ GEM uniform_notifier (1.16.0) uri (0.13.0) uri_template (0.7.0) - valid_email2 (4.0.6) + valid_email2 (5.2.6) activemodel (>= 3.2) mail (~> 2.5) version_gem (1.1.4) @@ -930,7 +930,7 @@ DEPENDENCIES responders (>= 3.1.1) rest-client reverse_markdown - rspec-rails (>= 6.1.3) + rspec-rails (>= 6.1.4) rspec_junit_formatter rubocop rubocop-performance @@ -939,11 +939,11 @@ DEPENDENCIES scout_apm scss_lint seed_dump - sentry-rails (>= 5.18.2) + sentry-rails (>= 5.19.0) sentry-ruby - sentry-sidekiq (>= 5.18.2) + sentry-sidekiq (>= 5.19.0) shoulda-matchers - sidekiq (>= 7.3.0) + sidekiq (>= 7.3.1) sidekiq-cron (>= 1.12.0) simplecov (= 0.17.1) slack-ruby-client (~> 2.2.0) diff --git a/app/builders/account_builder.rb b/app/builders/account_builder.rb index f179c6405..a3a90451d 100644 --- a/app/builders/account_builder.rb +++ b/app/builders/account_builder.rb @@ -33,10 +33,10 @@ class AccountBuilder def validate_email address = ValidEmail2::Address.new(@email) - if address.valid? # && !address.disposable? + if address.valid? && !address.disposable? true else - raise InvalidEmail.new(valid: address.valid?) + raise InvalidEmail.new({ valid: address.valid?, disposable: address.disposable? }) end end diff --git a/app/controllers/api/v1/accounts/integrations/hooks_controller.rb b/app/controllers/api/v1/accounts/integrations/hooks_controller.rb index d09ea2f00..13bb2738b 100644 --- a/app/controllers/api/v1/accounts/integrations/hooks_controller.rb +++ b/app/controllers/api/v1/accounts/integrations/hooks_controller.rb @@ -11,7 +11,12 @@ class Api::V1::Accounts::Integrations::HooksController < Api::V1::Accounts::Base end def process_event - render json: { message: @hook.process_event(params[:event]) } + response = @hook.process_event(params[:event]) + if response[:error] + render json: { error: response[:error] }, status: :unprocessable_entity + else + render json: { message: response[:message] } + end end def destroy diff --git a/app/javascript/dashboard/App.vue b/app/javascript/dashboard/App.vue index efb89f489..da169d61f 100644 --- a/app/javascript/dashboard/App.vue +++ b/app/javascript/dashboard/App.vue @@ -10,7 +10,6 @@ import PaymentPendingBanner from './components/app/PaymentPendingBanner.vue'; import PendingEmailVerificationBanner from './components/app/PendingEmailVerificationBanner.vue'; import vueActionCable from './helper/actionCable'; import WootSnackbarBox from './components/SnackbarContainer.vue'; -import rtlMixin from 'shared/mixins/rtlMixin'; import { setColorTheme } from './helper/themeHelper'; import { isOnOnboardingView } from 'v3/helpers/RouteHelper'; import { @@ -32,9 +31,6 @@ export default { UpgradeBanner, PendingEmailVerificationBanner, }, - - mixins: [rtlMixin], - data() { return { showAddAccountModal: false, @@ -46,6 +42,7 @@ export default { computed: { ...mapGetters({ getAccount: 'accounts/getAccount', + isRTL: 'accounts/isRTL', currentUser: 'getCurrentUser', authUIFlags: 'getAuthUIFlags', accountUIFlags: 'accounts/getUIFlags', @@ -102,7 +99,6 @@ export default { this.getAccount(this.currentAccountId); const { pubsub_token: pubsubToken } = this.currentUser || {}; this.setLocale(locale); - this.updateRTLDirectionView(locale); this.latestChatwootVersion = latestChatwootVersion; vueActionCable.init(pubsubToken); this.reconnectService = new ReconnectService(this.$store, router); @@ -124,8 +120,8 @@ export default { v-if="!authUIFlags.isFetching && !accountUIFlags.isFetchingItem" id="app" class="flex-grow-0 w-full h-full min-h-0 app-wrapper" - :class="{ 'app-rtl--wrapper': isRTLView }" - :dir="isRTLView ? 'rtl' : 'ltr'" + :class="{ 'app-rtl--wrapper': isRTL }" + :dir="isRTL ? 'rtl' : 'ltr'" >