downloader-bot/src/main/java/ru/mike/downloaderbot/UpdateProcessor.java
2023-06-25 18:43:38 +03:00

51 lines
1.6 KiB
Java

package ru.mike.downloaderbot;
import com.pengrad.telegrambot.TelegramBot;
import com.pengrad.telegrambot.UpdatesListener;
import com.pengrad.telegrambot.model.Update;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import ru.mike.downloaderbot.processor.updatetype.UpdateTypeProcessor;
import java.util.List;
import java.util.Optional;
@Slf4j
@Component
public class UpdateProcessor {
@Autowired
private TelegramBot telegramBot;
@Autowired
private List<UpdateTypeProcessor> updateTypeProcessors;
public void processUpdates() {
telegramBot.setUpdatesListener(updates -> {
for (Update update : updates) {
Optional<UpdateTypeProcessor> updateTypeProcessorOpt = updateTypeProcessors.stream()
.filter(p -> p.isSuitableProcessor(update))
.findFirst();
if (updateTypeProcessorOpt.isPresent()) {
updateTypeProcessorOpt.get().process(update);
} else {
log.warn("Unable to find suitable updateTypeProcessor. Update:{}", update);
}
}
return UpdatesListener.CONFIRMED_UPDATES_ALL;
}, e -> {
if (e.response() != null) {
// Ошибка из Телеграма
e.response().errorCode();
e.response().description();
} else {
// Как видно проблема сети
e.printStackTrace();
}
});
}
}