Skip to content
This repository was archived by the owner on Aug 27, 2025. It is now read-only.
/ phone-app Public archive

Микросервис для звонков абонентов

Notifications You must be signed in to change notification settings

ForwardMoth/phone-app

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Микросервис phone-app

Инструкция перед запуском

Необходимо задать переменные среды окружения (application-db). Пример заполнения:

  DATABASE_URL=jdbc:h2:mem:testdb
  DATABASE_USERNAME=test
  DATABASE_PASSWORD=test

Метод POST /generator/generateCDR

Метод генерации записей таблицу записей звонков.

Реализованные фичи:

  • Генерируется рандомно от 10 до 100 записей в таблицу со звонками
  • Абоненты выбираются из базы данных абонентов рандомным образом
  • Хронологический порядок записей при множественном вызове метода
  • Длительность звонков выбирается рандомно от 1 до 240 минут
  • Каждый вызов генерирует записи на 1 год вперёд от последней записи

Метод POST /report/callerUDR

Метод получения отчета об использовании данных по сотруднику за период времени (месяц или весь период).

Запрос осуществляется с телом запроса:

{
  "id": "bff470f4-b0e8-49dc-ae0a-80145c4122d6",
  "period": "03.2025"
}
{
  "id": "bff470f4-b0e8-49dc-ae0a-80145c4122d6"
}

id - Внешний идентификатор абонента, можно посмотреть в БД или в скрипте миграций (INSERT_CALLERS), обязательный

period - Если задаётся, то формате "MM.YYYY", либо не задаётся. Необязательный

Метод POST /report/monthCallersUDR

Метод получения отчета об использовании данных по всем абонентам за определенный месяц.

Запрос осуществляется с телом запроса:

{
  "period": "03.2025"
}

period - Если задаётся, то формате "MM.YYYY", обязательный

Метод POST /report/generateCDR

Метод генерации отчета 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 (+ плагины)

About

Микросервис для звонков абонентов

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages