Initial commit

This commit is contained in:
Kayashov.SM
2025-03-12 17:54:16 +04:00
commit b6d8a3cebd
254 changed files with 29963 additions and 0 deletions

View File

@@ -0,0 +1,128 @@
package ru.kayashov.bar.bot.config;
import org.springframework.stereotype.Component;
import org.telegram.telegrambots.meta.api.objects.CallbackQuery;
import org.telegram.telegrambots.meta.api.objects.Chat;
import org.telegram.telegrambots.meta.api.objects.Message;
import org.telegram.telegrambots.meta.api.objects.Update;
import org.telegram.telegrambots.meta.api.objects.replykeyboard.InlineKeyboardMarkup;
import org.telegram.telegrambots.meta.api.objects.replykeyboard.ReplyKeyboardMarkup;
import org.telegram.telegrambots.meta.api.objects.replykeyboard.buttons.InlineKeyboardButton;
import org.telegram.telegrambots.meta.api.objects.replykeyboard.buttons.KeyboardRow;
import ru.kayashov.bar.bot.domain.model.AbstractCallbackQuery;
import ru.kayashov.bar.bot.domain.model.AbstractChat;
import ru.kayashov.bar.bot.domain.model.AbstractKeyboard;
import ru.kayashov.bar.bot.domain.model.AbstractKeyboardButton;
import ru.kayashov.bar.bot.domain.model.AbstractMessage;
import ru.kayashov.bar.bot.domain.model.AbstractUpdate;
import java.util.List;
@Component
public class TelegramBotMapperImpl implements TelegramBotMapper {
@Override
public AbstractUpdate toAbstractUpdate(Update update) {
if (update == null) return null;
AbstractUpdate abstractUpdate = new AbstractUpdate();
abstractUpdate.setMessage(toAbstractMessage(update.getMessage()));
abstractUpdate.setCallbackQuery(toAbstractCallbackQuery(update.getCallbackQuery()));
return abstractUpdate;
}
@Override
public AbstractMessage toAbstractMessage(Message message) {
if (message == null) {
return null;
}
AbstractMessage abstractMessage = new AbstractMessage();
abstractMessage.setMessage(message.getText());
abstractMessage.setMessageId(message.getMessageId());
abstractMessage.setChat(toAbstractChat(message.getChat()));
abstractMessage.setChatId(message.getChatId());
return abstractMessage;
}
@Override
public AbstractCallbackQuery toAbstractCallbackQuery(CallbackQuery query) {
if (query == null) {
return null;
}
AbstractCallbackQuery callbackQuery = new AbstractCallbackQuery();
callbackQuery.setData(query.getData());
callbackQuery.setMessage(toAbstractMessage(query.getMessage()));
return callbackQuery;
}
@Override
public AbstractChat toAbstractChat(Chat chat) {
if (chat == null) {
return null;
}
AbstractChat abstractChat = new AbstractChat();
abstractChat.setId(chat.getId());
abstractChat.setFirstName(chat.getFirstName());
abstractChat.setLastName(chat.getLastName());
return abstractChat;
}
@Override
public InlineKeyboardMarkup toInlineKeyboard(AbstractKeyboard replyKeyboard) {
InlineKeyboardMarkup inlineKeyboardMarkup = new InlineKeyboardMarkup();
inlineKeyboardMarkup.setKeyboard(toInlineKeyboard(replyKeyboard.getKeyboard()));
return inlineKeyboardMarkup;
}
@Override
public ReplyKeyboardMarkup toReplyKeyboard(AbstractKeyboard replyKeyboard) {
return ReplyKeyboardMarkup.builder()
.keyboard(toKeyboardRows(replyKeyboard.getKeyboard()))
.resizeKeyboard(replyKeyboard.getResizeKeyboard())
.inputFieldPlaceholder(replyKeyboard.getInputFieldPlaceholder())
.oneTimeKeyboard(replyKeyboard.getOneTimeKeyboard())
.selective(replyKeyboard.getSelective())
.build();
}
@Override
public List<List<InlineKeyboardButton>> toInlineKeyboard(List<List<AbstractKeyboardButton>> buttons) {
return buttons.stream()
.map(this::toListButtons)
.toList();
}
@Override
public List<InlineKeyboardButton> toListButtons(List<AbstractKeyboardButton> buttons) {
return buttons.stream().map(this::toInlineKeyboardButton).toList();
}
private InlineKeyboardButton toInlineKeyboardButton(AbstractKeyboardButton button) {
InlineKeyboardButton inlineKeyboardButton = new InlineKeyboardButton();
inlineKeyboardButton.setCallbackData(button.getCallbackData());
inlineKeyboardButton.setText(button.getText());
return inlineKeyboardButton;
}
@Override
public List<KeyboardRow> toKeyboardRows(List<List<AbstractKeyboardButton>> rows) {
return rows.stream()
.map(this::toKeyboardRow)
.toList();
}
@Override
public KeyboardRow toKeyboardRow(List<AbstractKeyboardButton> row) {
KeyboardRow keyboardRow = new KeyboardRow();
row.forEach(b -> keyboardRow.add(b.getText()));
return keyboardRow;
}
}