Раздел api Календари #22

This commit is contained in:
2026-05-25 17:50:57 +03:00
parent 0de375c499
commit c2d2e934d9
8 changed files with 635 additions and 5 deletions
+15 -1
View File
@@ -26,7 +26,9 @@
calendar_to_json/1,
subscription_to_json/1,
trails_for_crud/4,
is_superadmin/1]).
is_superadmin/1,
pagination_headers/2
]).
-include("records.hrl").
@@ -118,6 +120,18 @@ parse_int_qs(undefined, Default) -> Default;
parse_int_qs(Bin, Default) ->
try binary_to_integer(Bin) catch _:_ -> Default end.
-spec pagination_headers(map(), non_neg_integer()) -> map().
pagination_headers(#{limit := Limit, offset := Offset}, Total) ->
NextOffset = Offset + Limit,
HasMore = NextOffset < Total,
#{
<<"x-total-count">> => integer_to_binary(Total),
<<"x-next-offset">> => case HasMore of
true -> integer_to_binary(NextOffset);
false -> <<"">>
end
}.
%% @doc Преобразует бинарный ISO8601 параметр в datetime().
-spec parse_datetime_qs(binary() | undefined) -> calendar:datetime() | undefined.
parse_datetime_qs(undefined) -> undefined;