Автор - Бакленев Алексей
Данный микросервис позволяет сохранять статистику по пользователям в базу данных, а также получать статистику пользователя из базы данных.
Основной функционал заключает в себе класс UserDatabaseController. Он позволяет:
- Создать в базе данных таблицу и добавить в нее столбцы для всех статов при необходимости
- Удалить из базы данных таблицу статистики пользователей
- Изменить статистику пользователя по имени пользователя
- Получить статистику пользователя по имени пользователя
Также присутствует класс UserStatisticsDAO, предоставляющий доступ к функциям изменения и получения статистики пользователя. При необходимости использования только этих двух функций можно использовать UserStatisticsDAO вместо UserDatabaseController.
Работа со статистикой пользователя осуществляется через класс UserStatistics, который хранит в себе статистику пользователя, и позволяет получит значение статистики по значению из Stats enum. Класс имеет методы получения статистики для каждого типа данных из StatType enum.
Микросервис по умолчанию работает с базой данных H2, но возможно подключить другую базу данных, для этого нужно создать класс, который реализует интерфейс Database, представляющий базу данных.
Для добавления нового пункта статистики пользователя необходимо добавить его в Stats enum, указав имя столбца в базе данных, и тип данных статистики.
Пример:
WordsLearned("wordsLearned", StatType.Integer)
Для добавления нового типа данных статистики, необходимо добавить его в StatType enum, указав имя типа данных в sql.
Также необходимо добавить Map в UserStatistics для хранения этого типа данных, и геттеры и сеттеры для этого типа данных.
Геттеры и сеттеры этого типа данных также необходимо добавить в UserStatisticsDAO по примеру уже добавленных типов данных.
Пример:
Integer("INT")
Работу микросервиса можно протестировать на двух примерах, находящихся в пакете test.
- CommandLineInterface - приложение позволяющее протестировать функции микросервиса в коммандной строке.
- Test - небольшой пример показывающий использование основных функций микросервиса в коде.