refactor
This commit is contained in:
parent
4fb5b12ea7
commit
baa288bff3
11 changed files with 401 additions and 780 deletions
|
|
@ -194,13 +194,7 @@ defmodule Mv.Membership.MemberExport.Build do
|
|||
field_atom = String.to_existing_atom(field)
|
||||
|
||||
if field_atom in Mv.Constants.member_fields() do
|
||||
Enum.sort_by(members, fn member -> Map.get(member, field_atom) end, fn a, b ->
|
||||
case order do
|
||||
"asc" -> a <= b
|
||||
"desc" -> b <= a
|
||||
_ -> true
|
||||
end
|
||||
end)
|
||||
sort_by_field(members, field_atom, order)
|
||||
else
|
||||
members
|
||||
end
|
||||
|
|
@ -210,6 +204,17 @@ defmodule Mv.Membership.MemberExport.Build do
|
|||
|
||||
defp sort_members_in_memory(members, _field, _order), do: members
|
||||
|
||||
defp sort_by_field(members, field_atom, order) do
|
||||
key_fn = fn member -> Map.get(member, field_atom) end
|
||||
compare_fn = build_compare_fn(order)
|
||||
|
||||
Enum.sort_by(members, key_fn, compare_fn)
|
||||
end
|
||||
|
||||
defp build_compare_fn("asc"), do: fn a, b -> a <= b end
|
||||
defp build_compare_fn("desc"), do: fn a, b -> b <= a end
|
||||
defp build_compare_fn(_), do: fn _a, _b -> true end
|
||||
|
||||
defp load_custom_field_values_query(query, []), do: query
|
||||
|
||||
defp load_custom_field_values_query(query, custom_field_ids) do
|
||||
|
|
@ -251,11 +256,6 @@ defmodule Mv.Membership.MemberExport.Build do
|
|||
ArgumentError -> {query, false}
|
||||
end
|
||||
|
||||
defp sort_after_load?(field) when is_binary(field),
|
||||
do: String.starts_with?(field, @custom_field_prefix)
|
||||
|
||||
defp sort_after_load?(_), do: false
|
||||
|
||||
defp sort_members_by_custom_field(members, _field, _order, _custom_fields) when members == [],
|
||||
do: []
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue