refactor: create BookCommonService for shared book operations

This commit is contained in:
2025-02-08 23:50:48 +03:00
parent 49b31ae5d4
commit bd2bbd5f25
2 changed files with 44 additions and 0 deletions
@@ -0,0 +1,10 @@
package ru.cathub.telegabot.service;
import ru.cathub.telegabot.model.Book;
import ru.cathub.telegabot.model.BotUser;
public interface BookCommonService {
void validateUser(BotUser user);
void clearUserBookCaches(Long userId);
String formatBookDetails(Book book);
}
@@ -0,0 +1,34 @@
package ru.cathub.telegabot.service.impl;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import ru.cathub.telegabot.model.Book;
import ru.cathub.telegabot.model.BotUser;
import ru.cathub.telegabot.service.BookCacheService;
import ru.cathub.telegabot.service.BookCommonService;
import ru.cathub.telegabot.utils.BookFormatUtils;
@Service
@RequiredArgsConstructor
public class BookCommonServiceImpl implements BookCommonService {
private final BookCacheService bookCacheService;
@Override
public void validateUser(BotUser user) {
if (user == null) {
throw new IllegalArgumentException("User cannot be null");
}
}
@Override
public void clearUserBookCaches(Long userId) {
bookCacheService.clearBookListCache(userId);
bookCacheService.clearBookEditCache(userId);
}
@Override
public String formatBookDetails(Book book) {
return BookFormatUtils.formatBookEntry(book, 0, false);
}
}