Statistics: log Ash errors instead of returning 0/nil silently

This commit is contained in:
Moritz 2026-02-12 18:44:42 +01:00 committed by moritz
parent 490dced8c8
commit b416944321

View file

@ -10,6 +10,8 @@ defmodule Mv.Statistics do
require Ash.Query
import Ash.Expr
require Logger
alias Mv.Membership.Member
alias Mv.MembershipFees
alias Mv.MembershipFees.MembershipFeeCycle
@ -30,9 +32,15 @@ defmodule Mv.Statistics do
|> Ash.Query.limit(1)
case Ash.read_one(query, opts) do
{:ok, nil} -> nil
{:ok, member} -> member.join_date.year
{:error, _} -> nil
{:ok, nil} ->
nil
{:ok, member} ->
member.join_date.year
{:error, reason} ->
Logger.warning("Statistics.first_join_year failed: #{inspect(reason)}")
nil
end
end
@ -46,8 +54,12 @@ defmodule Mv.Statistics do
|> Ash.Query.filter(expr(is_nil(exit_date)))
case Ash.count(query, opts) do
{:ok, count} -> count
{:error, _} -> 0
{:ok, count} ->
count
{:error, reason} ->
Logger.warning("Statistics.active_member_count failed: #{inspect(reason)}")
0
end
end
@ -61,8 +73,12 @@ defmodule Mv.Statistics do
|> Ash.Query.filter(expr(not is_nil(exit_date)))
case Ash.count(query, opts) do
{:ok, count} -> count
{:error, _} -> 0
{:ok, count} ->
count
{:error, reason} ->
Logger.warning("Statistics.inactive_member_count failed: #{inspect(reason)}")
0
end
end
@ -79,8 +95,12 @@ defmodule Mv.Statistics do
|> Ash.Query.filter(expr(join_date >= ^first_day and join_date <= ^last_day))
case Ash.count(query, opts) do
{:ok, count} -> count
{:error, _} -> 0
{:ok, count} ->
count
{:error, reason} ->
Logger.warning("Statistics.joins_by_year failed: #{inspect(reason)}")
0
end
end
@ -97,8 +117,12 @@ defmodule Mv.Statistics do
|> Ash.Query.filter(expr(exit_date >= ^first_day and exit_date <= ^last_day))
case Ash.count(query, opts) do
{:ok, count} -> count
{:error, _} -> 0
{:ok, count} ->
count
{:error, reason} ->
Logger.warning("Statistics.exits_by_year failed: #{inspect(reason)}")
0
end
end
@ -129,8 +153,12 @@ defmodule Mv.Statistics do
|> Keyword.put(:domain, MembershipFees)
case Ash.read(query, opts_for_read) do
{:ok, cycles} -> cycle_totals_from_cycles(cycles)
{:error, _} -> zero_cycle_totals()
{:ok, cycles} ->
cycle_totals_from_cycles(cycles)
{:error, reason} ->
Logger.warning("Statistics.cycle_totals_by_year failed: #{inspect(reason)}")
zero_cycle_totals()
end
end
@ -201,7 +229,8 @@ defmodule Mv.Statistics do
{:ok, cycles} ->
Enum.reduce(cycles, Decimal.new(0), fn c, acc -> Decimal.add(acc, c.amount) end)
{:error, _} ->
{:error, reason} ->
Logger.warning("Statistics.open_amount_total failed: #{inspect(reason)}")
Decimal.new(0)
end
end