Statistics: log Ash errors instead of returning 0/nil silently
This commit is contained in:
parent
e2c636fbf8
commit
c3b2abe380
1 changed files with 43 additions and 14 deletions
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue