diff --git a/src/main/java/ru/cathub/telegabot/service/impl/BookEditingServiceImpl.java b/src/main/java/ru/cathub/telegabot/service/impl/BookEditingServiceImpl.java index c681de5..52bed52 100644 --- a/src/main/java/ru/cathub/telegabot/service/impl/BookEditingServiceImpl.java +++ b/src/main/java/ru/cathub/telegabot/service/impl/BookEditingServiceImpl.java @@ -69,41 +69,43 @@ public class BookEditingServiceImpl implements BookEditingService { telegramClientService.sendMessage(user, "Введите рейтинг:"); } - public void updateBookTitle(BotUser user, String newTitle) { + private void updateBookField(BotUser user, String newValue, String fieldName) { var bookEditState = bookCacheService.getBookEditCache(user.getId()); Book book = bookRepository.findById(bookEditState.getBookId()).orElseThrow(); - book.setTitle(newTitle); - bookRepository.save(book); + switch (fieldName) { + case "title": + book.setTitle(newValue); + telegramClientService.sendMessage(user, "Название успешно обновлено!"); + break; + case "author": + book.setAuthor(newValue); + telegramClientService.sendMessage(user, "Автор успешно обновлен"); + break; + case "rating": + book.setRating(Integer.parseInt(newValue)); + telegramClientService.sendMessage(user, "Рейтинг успешно обновлен"); + break; + default: + throw new IllegalArgumentException("Invalid field name: " + fieldName); + } + + bookRepository.save(book); bookEditState.setBookEditState(BookEditStateCache.BookEditState.NONE); bookCacheService.updateBookEditCache(user.getId(), bookEditState); - - telegramClientService.sendMessage(user, "Название успешно обновлено!"); handleRestartMessage(user); } + public void updateBookTitle(BotUser user, String newTitle) { + updateBookField(user, newTitle, "title"); + } + public void updateBookAuthor(BotUser user, String newAuthor) { - var bookEditState = bookCacheService.getBookEditCache(user.getId()); - Book book = bookRepository.findById(bookEditState.getBookId()).orElseThrow(); - book.setAuthor(newAuthor); - bookRepository.save(book); - bookEditState.setBookEditState(BookEditStateCache.BookEditState.NONE); - bookCacheService.updateBookEditCache(user.getId(), bookEditState); - - telegramClientService.sendMessage(user, "Автор успешно обновлен"); - handleRestartMessage(user); + updateBookField(user, newAuthor, "author"); } public void updateBookRating(BotUser user, String newRating) { - var bookEditState = bookCacheService.getBookEditCache(user.getId()); - Book book = bookRepository.findById(bookEditState.getBookId()).orElseThrow(); - book.setRating(Integer.parseInt(newRating)); - bookRepository.save(book); - bookEditState.setBookEditState(BookEditStateCache.BookEditState.NONE); - bookCacheService.updateBookEditCache(user.getId(), bookEditState); - - telegramClientService.sendMessage(user, "Рейтинг успешно обновлен"); - handleRestartMessage(user); + updateBookField(user, newRating, "rating"); } @Override