package com.pengrad.telegrambot.sample.spark; import com.pengrad.telegrambot.BotUtils; import com.pengrad.telegrambot.TelegramBot; import com.pengrad.telegrambot.model.Message; import com.pengrad.telegrambot.model.Update; import spark.Request; import spark.Response; import spark.Route; /** * stas * 12/2/15. */ abstract public class BotHandler implements Route { @Override public Object handle(Request request, Response response) throws Exception { Update update = BotUtils.parseUpdate(request.body()); Message message = update.message(); if (isStartMessage(message) && onStart(message)) { return "ok"; } else { onWebhookUpdate(update); } return "ok"; } private boolean isStartMessage(Message message) { return message != null && message.text() != null && message.text().startsWith("/start"); } protected boolean onStart(Message message) { return false; } abstract void onWebhookUpdate(Update update); abstract String getToken(); abstract TelegramBot getBot(); }