Make longPollingBots or webHookBots in spring boot configuration
This commit is contained in:
parent
431d945486
commit
dcc4f29ddd
@ -1,23 +1,24 @@
|
||||
package org.telegram.telegrambots.starter;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.boot.CommandLineRunner;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.telegram.telegrambots.TelegramBotsApi;
|
||||
import org.telegram.telegrambots.exceptions.TelegramApiException;
|
||||
import org.telegram.telegrambots.exceptions.TelegramApiRequestException;
|
||||
import org.telegram.telegrambots.generics.LongPollingBot;
|
||||
import org.telegram.telegrambots.generics.WebhookBot;
|
||||
|
||||
import javax.annotation.PostConstruct;
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
|
||||
/**
|
||||
* Receives all beand which are #LongPollingBot and #WebhookBot and register them in #TelegramBotsApi.
|
||||
* #TelegramBotsApi added to spring context as well
|
||||
*/
|
||||
@Configuration
|
||||
public class TelegramBotStarterConfiguration implements CommandLineRunner {
|
||||
public class TelegramBotStarterConfiguration {
|
||||
|
||||
|
||||
private final List<LongPollingBot> longPollingBots;
|
||||
@ -26,24 +27,34 @@ public class TelegramBotStarterConfiguration implements CommandLineRunner {
|
||||
@Autowired
|
||||
private TelegramBotsApi telegramBotsApi;
|
||||
|
||||
public TelegramBotStarterConfiguration(List<LongPollingBot> longPollingBots,
|
||||
List<WebhookBot> webHookBots) {
|
||||
public TelegramBotStarterConfiguration(@Autowired(required = false) List<LongPollingBot> longPollingBots,
|
||||
@Autowired(required = false) List<WebhookBot> webHookBots) {
|
||||
|
||||
this.longPollingBots = longPollingBots;
|
||||
this.webHookBots = webHookBots;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void run(String... args) {
|
||||
try {
|
||||
for (LongPollingBot bot : longPollingBots) {
|
||||
telegramBotsApi.registerBot(bot);
|
||||
}
|
||||
for (WebhookBot bot : webHookBots) {
|
||||
telegramBotsApi.registerBot(bot);
|
||||
}
|
||||
} catch (TelegramApiException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
@PostConstruct
|
||||
public void registerBots() {
|
||||
Optional.ofNullable(longPollingBots).ifPresent(bots -> {
|
||||
bots.forEach(bot -> {
|
||||
try {
|
||||
telegramBotsApi.registerBot(bot);
|
||||
} catch (TelegramApiRequestException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
Optional.ofNullable(webHookBots).ifPresent(bots -> {
|
||||
bots.forEach(bot -> {
|
||||
try {
|
||||
telegramBotsApi.registerBot(bot);
|
||||
} catch (TelegramApiRequestException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user