Add new stat

This commit is contained in:
2025-10-08 09:50:33 -07:00
parent f5009780aa
commit bf9f20a13c
4 changed files with 17 additions and 3 deletions

View File

@@ -27,7 +27,11 @@
{
"park_count": 474,
"alert_count": 708,
"most_alerts": {
"state_with_most_parks": {
"state": "WY",
"park_count": 10
},
"park_with_most_alerts": {
"park_code": "zion",
"alert_count": 6
}

View File

@@ -3,6 +3,7 @@ module Api::V1
def index
@park_count = Park.count
@alert_count = Alert.count
@state_with_most_parks = ParksByState.group(:state).count.max
@park_with_most_alerts = Alert.group(:park_code).count.max
end
end

View File

@@ -1,6 +1,10 @@
json.park_count @park_count
json.alert_count @alert_count
json.most_alerts do
json.state_with_most_parks do
json.state @state_with_most_parks[0]
json.park_count @state_with_most_parks[1]
end
json.park_with_most_alerts do
json.park_code @park_with_most_alerts[0]
json.alert_count @park_with_most_alerts[1]
end

View File

@@ -4,6 +4,7 @@ RSpec.describe "Api::V1::Stats", type: :request do
describe "GET /stats" do
it "returns summary stats" do
alerts(:two).update!(park_code: parks(:one).code)
parks_by_states(:two).update!(state: "OR")
get api_v1_stats_url
@@ -11,7 +12,11 @@ RSpec.describe "Api::V1::Stats", type: :request do
expect(response.parsed_body).to match(
park_count: 2,
alert_count: 2,
most_alerts: {
state_with_most_parks: {
state: "OR",
park_count: 2
},
park_with_most_alerts: {
park_code: "crla",
alert_count: 2
}