Необходимо задать переменные среды окружения (application-db). Пример заполнения:
DATABASE_URL=jdbc:h2:mem:testdb
DATABASE_USERNAME=test
DATABASE_PASSWORD=test
Метод генерации записей таблицу записей звонков.
Реализованные фичи:
- Генерируется рандомно от 10 до 100 записей в таблицу со звонками
- Абоненты выбираются из базы данных абонентов рандомным образом
- Хронологический порядок записей при множественном вызове метода
- Длительность звонков выбирается рандомно от 1 до 240 минут
- Каждый вызов генерирует записи на 1 год вперёд от последней записи
Метод получения отчета об использовании данных по сотруднику за период времени (месяц или весь период).
Запрос осуществляется с телом запроса:
{
"id": "bff470f4-b0e8-49dc-ae0a-80145c4122d6",
"period": "03.2025"
}{
"id": "bff470f4-b0e8-49dc-ae0a-80145c4122d6"
}id - Внешний идентификатор абонента, можно посмотреть в БД или в скрипте миграций (INSERT_CALLERS), обязательный
period - Если задаётся, то формате "MM.YYYY", либо не задаётся. Необязательный
Метод получения отчета об использовании данных по всем абонентам за определенный месяц.
Запрос осуществляется с телом запроса:
{
"period": "03.2025"
}period - Если задаётся, то формате "MM.YYYY", обязательный
Метод генерации отчета CDR по пользователю за заданный период времени
Запрос осуществляется с телом запроса:
{
"id": "f3bba225-7fe9-472f-8570-2b8ddeda18cb",
"startDate": "2025-03-23",
"finishDate": "2025-05-28"
}id - Внешний идентификатор абонента, можно посмотреть в БД или в скрипте миграций (INSERT_CALLERS), обязательный
startDate - дата начала отчетного периода в формате ("YYYY-MM-DD"), обязательный
finishDate - дата окончания отчетного периода в формате ("YYYY-MM-DD"), обязательный
Отчеты генерируются в директории reports с названиями "phoneNumber_uuid" в формате "csv".
uuid - возвращается из запроса
{
"uuid": "d033f849-597c-412f-9645-4077d6b8f500"
}Если данных нет, то файл будет пустым.
Сборку с тестами можно запустить с помощью mvn clean install
- Java 17
- Spring boot 3.4
- Database H2
- Liquibase 4.29 (миграции)
- Lombok 1.18 (аннотации)
- Junit 5 (тесты)
- Сборка Maven (+ плагины)