mirror of
https://github.com/lingble/chatwoot.git
synced 2025-11-03 12:37:56 +00:00
The Inbox Overview section is being updated to offer a more detailed report, showing an overall view of the account grouped by inboxes. To view detailed reports and access specific graphs for individual inboxes, click on the inbox name to navigate to its dedicated report page. --------- Co-authored-by: Sojan Jose <sojan@pepalo.com>
40 lines
977 B
Ruby
40 lines
977 B
Ruby
class Api::V2::Accounts::SummaryReportsController < Api::V1::Accounts::BaseController
|
|
before_action :check_authorization
|
|
before_action :prepare_builder_params, only: [:agent, :team, :inbox]
|
|
|
|
def agent
|
|
render_report_with(V2::Reports::AgentSummaryBuilder)
|
|
end
|
|
|
|
def team
|
|
render_report_with(V2::Reports::TeamSummaryBuilder)
|
|
end
|
|
|
|
def inbox
|
|
render_report_with(V2::Reports::InboxSummaryBuilder)
|
|
end
|
|
|
|
private
|
|
|
|
def check_authorization
|
|
authorize :report, :view?
|
|
end
|
|
|
|
def prepare_builder_params
|
|
@builder_params = {
|
|
since: permitted_params[:since],
|
|
until: permitted_params[:until],
|
|
business_hours: ActiveModel::Type::Boolean.new.cast(permitted_params[:business_hours])
|
|
}
|
|
end
|
|
|
|
def render_report_with(builder_class)
|
|
builder = builder_class.new(account: Current.account, params: @builder_params)
|
|
render json: builder.build
|
|
end
|
|
|
|
def permitted_params
|
|
params.permit(:since, :until, :business_hours)
|
|
end
|
|
end
|