Добавлены эндпойнты admin/v1/events и admin/v1/events/:id #20

This commit is contained in:
2026-05-08 19:02:35 +03:00
parent 393cf00631
commit 1132341b92
9 changed files with 456 additions and 3 deletions
+40 -1
View File
@@ -5,6 +5,7 @@
update_event/3, delete_event/2]).
-export([validate_event_time/1, validate_event_time/2, get_occurrences/3, cancel_occurrence/3]).
-export([materialize_for_booking/3]).
-export([list_all_events/1, get_event_admin/1, update_event_admin/2, delete_event_admin/1]).
%% Создание одиночного события
create_event(UserId, CalendarId, Title, StartTime, Duration) ->
@@ -234,4 +235,42 @@ merge_materialized(MasterId, Occurrences) ->
false -> {virtual, Occ};
Event -> {materialized, Event}
end
end, Occurrences).
end, Occurrences).
%% ─── Административные функции (без проверки прав) ─────────────────
list_all_events(Filters) ->
Events = core_event:list_all(), % возвращает список, а не {ok, List}
Filtered = apply_filters(Events, Filters),
{ok, Filtered}.
get_event_admin(EventId) ->
core_event:get_by_id(EventId).
update_event_admin(EventId, Updates) ->
case core_event:get_by_id(EventId) of
{ok, _Event} ->
ValidUpdates = validate_updates(Updates, undefined),
core_event:update(EventId, ValidUpdates);
Error ->
Error
end.
delete_event_admin(EventId) ->
core_event:delete(EventId).
%% Применяет фильтры from/to к списку событий
apply_filters(Events, []) ->
Events;
apply_filters(Events, [{from, From} | Rest]) ->
apply_filters(
[E || E <- Events, E#event.start_time >= From],
Rest
);
apply_filters(Events, [{to, To} | Rest]) ->
apply_filters(
[E || E <- Events, E#event.start_time =< To],
Rest
);
apply_filters(Events, [_ | Rest]) ->
apply_filters(Events, Rest).