Пример обработки ошибок в методах sendRequest
и sendEnumRequest
:
@Scenario(DemoDispatcher::class, "/error", "error")
class ErrorScenario(
dispatcher: DemoDispatcher
) : SessionAwareOperations(dispatcher), ScenarioEntryPoint {
enum class ErrorOption(val title: String) {
REQUEST_ERROR_DEFAULT("REQUEST_ERROR_DEFAULT"),
REQUEST_ERROR_CUSTOM("REQUEST_ERROR_CUSTOM"),
ENUM_REQUEST_ERROR_DEFAULT("ENUM_REQUEST_ERROR_DEFAULT"),
ENUM_REQUEST_ERROR_CUSTOM("ENUM_REQUEST_ERROR_CUSTOM")
}
enum class OkOption(val title: String)
override suspend fun start(update: Update) {
when (sendEnumRequest<ErrorOption>("Помогу стартовать сценарий start") { it.title }) {
ErrorOption.REQUEST_ERROR_DEFAULT -> sendRequest("Sending error request without validationErrorMessage. " +
"Should receive default error message. Write me anything") { throw RuntimeException("demo exception") }
ErrorOption.REQUEST_ERROR_CUSTOM -> sendRequest(text = "Sending error request with validationErrorMessage = Custom error message. " +
"Should receive 'Custom error message'. Write me anything", validationErrorMessage = "Custom error message") { throw RuntimeException("demo exception") }
ErrorOption.ENUM_REQUEST_ERROR_DEFAULT -> sendEnumRequest<OkOption>("Sending error enumRequest without validationErrorMessage. " +
"Should receive default enum error message. Write me anything") { it.title }
ErrorOption.ENUM_REQUEST_ERROR_CUSTOM -> sendEnumRequest<OkOption>("Sending error enumRequest with validationErrorMessage = Custom enum error message. " +
"Should receive 'Custom enum error message'. Write me anything", validationErrorMessage = "Custom enum error message") { it.title }
}
}
}
Ошибка по умолчанию в методе sendRequest
В случае выбора опции REQUEST_ERROR_DEFAULT, отправляется запрос пользователю с помощью метода sendRequest
без указания
текста ошибки в параметре validationErrorMessage
. В этом случае будет выдан текст ошибки, содержащийся
в опции sdk.scenario.defaultErrorMessage
конфигурации bot-scenario-sdk
validationErrorMessage в методе sendRequest
В случае выбора опции REQUEST_ERROR_CUSTOM, отправляется запрос пользователю с помощью метода sendRequest
с указанием
текста ошибки в параметре validationErrorMessage
. В этом случае будет выдан текст ошибки, указанный в параметре validationErrorMessage
Ошибка по умолчанию в методе sendEnumRequest
В случае выбора опции ENUM_REQUEST_ERROR_DEFAULT, отправляется запрос пользователю с помощью метода sendEnumRequest
без указания
текста ошибки в параметре validationErrorMessage
. В этом случае будет выдан текст ошибки, содержащийся
в опции sdk.scenario.defaultRequestEnumErrorMessage
конфигурации bot-scenario-sdk
validationErrorMessage в методе sendEnumRequest
В случае выбора опции ENUM_REQUEST_ERROR_CUSTOM, отправляется запрос пользователю с помощью метода sendEnumRequest
с указанием
текста ошибки в параметре validationErrorMessage
. В этом случае будет выдан текст ошибки, указанный в параметре validationErrorMessage