package de.simonscholz.bot.telegram; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; import com.pengrad.telegrambot.TelegramBot; import com.pengrad.telegrambot.model.Update; import com.pengrad.telegrambot.request.GetUpdates; import com.pengrad.telegrambot.response.GetUpdatesResponse; import de.simonscholz.bot.telegram.handler.UpdateHandler; @RestController public class BotController { @Autowired private UpdateHandler handler; @Autowired private TelegramBot bot; @RequestMapping("/poll") public void poll() { GetUpdates getUpdates = new GetUpdates().limit(100).offset(0).timeout(0); GetUpdatesResponse getUpdatesResponse = bot.execute(getUpdates); List<Update> updates = getUpdatesResponse.updates(); updates.forEach(this::webhook); } @RequestMapping(value = "/webhook", method = RequestMethod.POST) public void webhook(@RequestBody Update update) { handler.handleUpdate(update); } }