mikheevshow/chengine-java

EPIC | Обработчики команд

mikheevshow opened this issue · 0 comments

Опциональные параметры

При указании обрабатываемой команды в handleCommand можно использовать шаблон команды с опциональным
параметром.

@HandleCommand("/product#?{id}")
public Send product(@CommandParamer("id") Long id) { // Нужно иметь ввиду, что объект может быть null и падать 
// в случае если разработчик пытается использовать команду с опционалом и примитивный тип в параметре метода


    return Send.carousel() ...
}

В этом случае обработчик обрабатывает два вида команд /product и /product#12

Параметр "потреблять от" (consumesFrom)

Если возникает необходимость для одной команды иметь различные методы обработки, можно использовать параметры consumesFrom и consumesFromAllExcept для аннотации @HandleCommand.

// Будет обрабатывть команды /product только из телеги
@HandleCommand("/product", consumesFrom="TELEGRAM")
public Send consumesOnlyFromTelegram() {
   return Send.carouser() ...
}

// и

// Будет обрабатывть команды /product от всех, кроме телеги
@HandleCommand("/product", consumesFromAllExcept="TELEGRAM")
public Send consumesOnlyFromTelegram() {
   return Send.carouser() ...
}