Пагинация, фильтры и сортировки Часть 1 #20

This commit is contained in:
2026-05-09 13:38:54 +03:00
parent ecf68ee300
commit a34e36b966
5 changed files with 316 additions and 40 deletions
@@ -113,12 +113,14 @@ convert_field({<<"location">>, Val}) -> {location, Val};
convert_field({<<"tags">>, Val}) -> {tags, Val};
convert_field({<<"capacity">>, Val}) -> {capacity, Val};
convert_field({<<"online_link">>, Val}) -> {online_link, Val};
convert_field({<<"status">>, Val}) -> {status, Val};
convert_field({<<"status">>, Val}) ->
try binary_to_existing_atom(Val, utf8) of
Atom -> {status, Atom}
catch
error:badarg -> {status, Val} % fallback, но лучше залогировать
end;
convert_field(Other) -> Other.
%% event_to_json, datetime_to_iso8601, parse_datetime, parse_datetime_binary
%% берутся те же, что и в admin_handler_events.erl (можно вынести в общий модуль,
%% но для простоты дублируем).
event_to_json(Event) ->
LocationJson = case Event#event.location of
undefined -> null;