Reply command
Пример использования ReplyCommand
@Scenario(DemoDispatcher::class, "/replyCommand", "replyCommand")
class ReplyCommandScenario(
dispatcher: DemoDispatcher
) : SessionAwareOperations(dispatcher), ScenarioEntryPoint {
private val dateTimeFormatter: DateTimeFormatter = DateTimeFormatter.ofPattern("d.MM.yyyy")
enum class DateOption(val title: String) {
TODAY("\uD83D\uDCC5 Сегодня"),
TOMORROW("\uD83D\uDCC6 Завтра")
}
override suspend fun start(update: Update) {
val uiState = UiState(replyKeyboard = listOf(
ReplyCommand(DateOption.TODAY.title),
ReplyCommand(DateOption.TOMORROW.title)))
val date: LocalDate = sendRequest(text = "Choose option from reply menu", uiState = uiState,
validationErrorMessage = "Please, choose option from reply menu") {
when (it) {
is Message -> when (it.content) {
DateOption.TODAY.title -> LocalDate.now()
DateOption.TOMORROW.title -> LocalDate.now().plus(1, ChronoUnit.DAYS)
else -> throw UnsupportedOperationException()
}
else -> throw UnsupportedOperationException()
}
}
sendMessage("Entered: ${date.format(dateTimeFormatter)}")
}
}