Files
EventHubBack/src/swagger/eventhub_trails.erl
T
aleksey 12274f9ed0
CI / test (push) Successful in 7m43s
CI / deploy-ift (push) Successful in 3m33s
CI / e2e-ift (push) Successful in 1m28s
CI / deploy-stage (push) Failing after 3m40s
CI / e2e-stage (push) Has been skipped
feat(notify): Web Push subscriptions and email/push prefs.
Prefs in user.preferences; push_subscription table; VAPID send on
reminder/waitlist. Refs EventHub/EventHubBack#75
2026-08-15 20:19:44 +03:00

131 lines
4.5 KiB
Erlang
Executable File

-module(eventhub_trails).
-export([admin/0, user/0, all/0]).
%%%-------------------------------------------------------------------
%%% @doc Возвращает список Swagger-трасс для административных эндпоинтов.
%%% @end
%%%-------------------------------------------------------------------
-spec admin() -> [map()].
admin() ->
Modules = [
% ================== БАЗОВЫЕ ==================
admin_handler_health,
admin_handler_stats,
admin_handler_node_metrics,
admin_handler_login,
admin_handler_refresh,
admin_handler_logout,
% ================== ПОЛЬЗОВАТЕЛИ ==================
admin_handler_users,
admin_handler_user_by_id,
admin_handler_user_verification_token,
admin_handler_user_password_reset_token,
admin_handler_user_stats,
% ================== КАЛЕНДАРИ ==================
admin_handler_calendars,
admin_handler_calendar_stats,
admin_handler_calendar_by_id,
% ================== СОБЫТИЯ ==================
admin_handler_events,
admin_handler_event_stats,
admin_handler_event_by_id,
% ================== ОТЧЁТЫ ==================
admin_handler_reports,
admin_handler_report_stats,
admin_handler_report_by_id,
% ================== ОТЗЫВЫ ==================
admin_handler_reviews,
admin_handler_reviews_stats,
admin_handler_reviews_by_id,
% ================== БАН-СЛОВА ==================
admin_handler_banned_words,
% ================== АВТОМОДЕРАЦИЯ ==================
admin_handler_automod,
% ================== ТИКЕТЫ ==================
admin_handler_ticket_stats,
admin_handler_ticket_by_id,
admin_handler_tickets,
% ================== ПОДПИСКИ ==================
admin_handler_subscriptions,
admin_handler_subscription_stats,
admin_handler_subscriptions_by_id,
% ================== МОДЕРАЦИЯ (общий маршрут) ==================
admin_handler_moderation,
% ================== Управление ролями (только для superadmin) ==================
admin_handler_me,
admin_handler_admins,
admin_handler_admins_by_id,
admin_handler_audit
],
lists:flatmap(fun trails_from_module/1, Modules).
%%%-------------------------------------------------------------------
%%% @doc Возвращает список Swagger-трасс для пользовательских эндпоинтов.
%%% @end
%%%-------------------------------------------------------------------
-spec user() -> [map()].
user() ->
Modules = [
handler_health,
handler_register,
handler_login,
handler_refresh,
handler_logout,
handler_verify,
handler_forgot_password,
handler_reset_password,
handler_booking_by_id,
handler_bookings,
handler_calendar_by_id,
handler_calendar_follow,
handler_calendar_specialists,
handler_calendar_specialist_invites,
handler_specialist_invites,
handler_users_lookup,
handler_calendar_view,
handler_calendars,
handler_event_by_id,
handler_event_occurrences,
handler_events,
handler_event_waitlist,
handler_reports,
handler_review_by_id,
handler_review_vote,
handler_reviews,
handler_search,
handler_subscription,
handler_ticket_by_id,
handler_tickets,
handler_user_bookings,
handler_user_booking_requests,
handler_user_studio_bookings,
handler_user_following,
handler_user_me,
handler_user_avatar,
handler_notification_prefs,
handler_push,
handler_calendar_cover,
handler_media,
handler_user_reviews
],
lists:flatmap(fun trails_from_module/1, Modules).
%%%-------------------------------------------------------------------
%%% @doc Возвращает полный список Swagger-трасс (административные + пользовательские).
%%% @end
%%%-------------------------------------------------------------------
-spec all() -> [map()].
all() ->
admin() ++ user().
%%%-------------------------------------------------------------------
%%% @doc Безопасно извлекает `trails/0` из модуля.
%%% Если функция отсутствует, возвращает пустой список.
%%% @end
%%%-------------------------------------------------------------------
-spec trails_from_module(atom()) -> [map()].
trails_from_module(Module) ->
try Module:trails() of
Trails when is_list(Trails) -> Trails
catch error:undef -> []
end.