21 lines
984 B
Ruby
21 lines
984 B
Ruby
module Admin
|
|
class DashboardController < BaseController
|
|
def index
|
|
@stats = {
|
|
total_gateways: Gateway.count,
|
|
online_gateways: Gateway.online.count,
|
|
total_api_keys: ApiKey.count,
|
|
active_api_keys: ApiKey.active_keys.count,
|
|
messages_today: SmsMessage.where("created_at >= ?", Time.current.beginning_of_day).count,
|
|
messages_sent_today: SmsMessage.where("created_at >= ? AND direction = ?", Time.current.beginning_of_day, "outbound").count,
|
|
messages_received_today: SmsMessage.where("created_at >= ? AND direction = ?", Time.current.beginning_of_day, "inbound").count,
|
|
failed_messages_today: SmsMessage.where("created_at >= ? AND status = ?", Time.current.beginning_of_day, "failed").count,
|
|
pending_messages: SmsMessage.pending.count
|
|
}
|
|
|
|
@recent_messages = SmsMessage.order(created_at: :desc).limit(10)
|
|
@recent_gateways = Gateway.order(last_heartbeat_at: :desc).limit(5)
|
|
end
|
|
end
|
|
end
|