Files
EventHubBack/README.md
2026-04-20 21:04:16 +03:00

7.5 KiB
Raw Blame History

eventhub

An OTP application

Build

$ rebar3 compile

EventHub - Шпаргалка по Makefile командам

🚀 Разработка

Команда Описание
make compile Скомпилировать проект
make shell Запустить интерактивную Erlang оболочку
make run Запустить приложение в foreground
make start Запустить приложение в фоне
make stop Остановить приложение
make restart Перезапустить приложение
make logs Показать логи
make console Подключиться к запущенной ноде
make clean Очистить проект
make deps Установить зависимости
make update-deps Обновить зависимости

🧪 Тестирование

Команда Описание
make test Алиас для make eunit
make eunit Запустить все EUnit тесты
make eunit-verbose EUnit тесты с подробным выводом
make eunit-module MODULE=имя Тесты для конкретного модуля
make test-api Запустить все API тесты (сервер запустится и остановится автоматически)
make test-quick Запустить API тесты с существующим сервером
make test-runner PATTERN=booking Запустить API тесты бронирований
cd test/scripts && ./test_runner.sh -v auth Запустить тесты в verbose режиме
make test-auth Только тесты аутентификации
make test-calendar Только тесты календарей
make test-event Только тесты событий
make test-booking Только тесты бронирований
make test-all Все тесты (EUnit + API)
make cover Тесты с отчётом о покрытии кода

🔍 Качество кода

Команда Описание
make dialyzer Статический анализ кода
make xref Проверка кросс-ссылок
make lint Проверка стиля кода
make format Форматирование кода (требуется erlfmt)
make docs Генерация документации EDoc

📦 Релиз и Docker

Команда Описание
make release Собрать production релиз
make tar Создать tar.gz архив релиза
make docker-build Собрать Docker образ
make docker-run Запустить Docker контейнер
make docker-stop Остановить Docker контейнер

🛠 Утилиты

Команда Описание
make status Проверить статус сервера (healthcheck)
make tree Показать структуру проекта
make info Показать информацию о проекте и API
make help Показать все доступные команды

👨‍💻 Рабочий процесс разработки

Команда Описание
make dev-setup Настройка окружения (deps + compile)
make dev-test Быстрый цикл: compile + eunit
make dev-watch Автокомпиляция при изменениях (требуется entr)

📋 Git хелперы

Команда Описание
make git-status Показать статус Git
make git-log Показать лог (последние 10 коммитов)
make git-save Commit + push (запросит сообщение)

🔧 Примеры использования

# Запустить тесты для конкретного модуля
make eunit-module MODULE=core_booking_tests

# Запустить приложение, затем API тесты
make run & make test-api

# Полный цикл: очистка, компиляция, тесты
make clean compile eunit

# Проверить статус сервера
make status

# Собрать Docker образ и запустить
make docker-build && make docker-run

🎯 Полезные сочетания

# Остановить всё, очистить, собрать заново, запустить тесты
make stop && make clean && make compile && make eunit

# Запустить сервер в фоне и проверить статус
make start && sleep 3 && make status

# Посмотреть структуру проекта
make tree

# Показать информацию о проекте
make info

📡 API Эндпоинты (порт 8080)

Метод Путь Описание
POST /v1/register Регистрация пользователя
POST /v1/login Логин (получение JWT)
POST /v1/refresh Обновление токена
GET /v1/user/me Профиль текущего пользователя
GET /v1/user/bookings Бронирования пользователя
POST /v1/calendars Создание календаря
GET /v1/calendars Список календарей
GET /v1/calendars/:id Получение календаря
PUT /v1/calendars/:id Обновление календаря
DELETE /v1/calendars/:id Удаление календаря
POST /v1/calendars/:id/events Создание события
GET /v1/calendars/:id/events Список событий календаря
GET /v1/events/:id Получение события
PUT /v1/events/:id Обновление события
DELETE /v1/events/:id Удаление события
GET /v1/events/:id/occurrences Вхождения повторяющегося
DELETE /v1/events/:id/occurrences/:time Отмена вхождения
POST /v1/events/:id/bookings Запись на событие
GET /v1/events/:id/bookings Список бронирований события
GET /v1/bookings/:id Получение бронирования
PUT /v1/bookings/:id Подтверждение/отклонение
DELETE /v1/bookings/:id Отмена бронирования
GET /health Healthcheck