This reverts #14610 so conversation unread counts are again controlled by the `conversation_unread_counts` feature flag across the API, ActionCable broadcasts, notifier/listener paths, and dashboard sidebar fetching. ## Closes - None ## What changed - Restores feature-flag checks for conversation unread count reads and broadcasts. - Restores the dashboard feature flag constant and sidebar/store behavior for disabled unread counts. - Restores the specs that cover disabled-feature behavior. ## How to test - In an account with `conversation_unread_counts` enabled, verify sidebar unread counts are fetched and updated in real time. - Disable `conversation_unread_counts` for the account and verify unread count requests/broadcasts are skipped.
17 lines
559 B
Ruby
17 lines
559 B
Ruby
class Api::V1::Accounts::Conversations::UnreadCountsController < Api::V1::Accounts::BaseController
|
|
before_action :ensure_unread_counts_enabled
|
|
|
|
def index
|
|
counts = ::Conversations::UnreadCounts::Counter.new(account: Current.account, user: Current.user).perform
|
|
render json: { payload: counts }
|
|
end
|
|
|
|
private
|
|
|
|
def ensure_unread_counts_enabled
|
|
return if Current.account.feature_enabled?('conversation_unread_counts')
|
|
|
|
render json: { error: I18n.t('errors.conversations.unread_counts.feature_not_enabled') }, status: :forbidden
|
|
end
|
|
end
|