Skip to content
Snippets Groups Projects

Feature/base telegram text bot

Merged Oleksandr Petrov requested to merge feature/base-telegram-text-bot into develop
12 files
+ 273
3
Compare changes
  • Side-by-side
  • Inline
Files
12
package cz.cvut.fit.sp.bot_builder.text_bot;
import cz.cvut.fit.base.bot_builder.base.base_bot.BaseTextHandlerInterface;
import cz.cvut.fit.base.bot_builder.base.base_bot.ChatBotTextAnswer;
import cz.cvut.fit.base.bot_builder.base.base_bot.UserRequest;
import lombok.Getter;
import lombok.NonNull;
import lombok.RequiredArgsConstructor;
import lombok.Setter;
import org.telegram.telegrambots.meta.api.methods.send.SendMessage;
import org.telegram.telegrambots.meta.api.objects.Message;
import java.util.Map;
import java.util.Optional;
@Getter
@Setter
@RequiredArgsConstructor
public class BaseTextBotHandler implements BaseTextHandlerInterface {
@NonNull
private Map<UserRequest, ChatBotTextAnswer> botCommands;
@Override
public Optional<SendMessage> executeRequest(String chatId, String username, Message message) {
// Try to find user request in available requests list
Optional<Map.Entry<UserRequest, ChatBotTextAnswer>> request
= botCommands
.entrySet()
.stream()
.filter((req) -> req.getKey().equals(new UserRequest(message.getText()))).findFirst();
if (request.isEmpty()) {
// Request not found...
return Optional.empty();
}
return produceAnswer(request.get(), chatId);
}
@Override
public Optional<SendMessage> produceAnswer(Map.Entry<UserRequest, ChatBotTextAnswer> requestOptional, String chatId) {
return Optional.ofNullable(requestOptional.getValue().convertToMessage(chatId));
}
}
Loading