# FMPResult

data class FMPResult<out T>(val status: Boolean, val result: T, val response: FMPResponse? = null, val exception: FMPException? = null)

Результат выполнения операции фреймворка.

#### Since

21.04.01

#### Samples

    import ru.fsight.fmp.FMPResult
    import ru.fsight.fmp.exception.ServerException
    import ru.fsight.fmp.exception.UnauthorizedException
    fun main() {
       //sampleStart
       /*
     * Пример обработки статуса операции.
     */
    if (result.status) {
    	// Сделать что-то в случае успеха.
    } else {
    	// Сделать что-то в случае неуспешной попытки выполнения операции (ошибке запроса).
    }
       //sampleEnd
    }

    import ru.fsight.fmp.FMPResult
    import ru.fsight.fmp.exception.ServerException
    import ru.fsight.fmp.exception.UnauthorizedException
    fun main() {
       //sampleStart
       /*
     * Пример применения результата операции.
     */
    if (result.result) {
    	// Сделать что-то в случае положительного ответа операции. Например, если пользователь был успешно аутентифицирован.
    }
       //sampleEnd
    }

    import ru.fsight.fmp.FMPResult
    import ru.fsight.fmp.exception.ServerException
    import ru.fsight.fmp.exception.UnauthorizedException
    fun main() {
       //sampleStart
       /*
     * Пример применения ответа от сервера.
     */
    result.response?.headers?.forEach { (k, v) ->
    	println("header: $k, value: $v")
    } // Вывести в logcat названия и значения HTTP заголовков от сервера.
       //sampleEnd
    }

    import ru.fsight.fmp.FMPResult
    import ru.fsight.fmp.exception.ServerException
    import ru.fsight.fmp.exception.UnauthorizedException
    fun main() {
       //sampleStart
       /*
     * Пример применения Exception.
     */
    when (result.exception) {
    	is UnauthorizedException -> { /* Пользователь не аутентифицирован. */ }
    	is ServerException -> { /* Ошибка сервера. */ }
    	else -> { /* Прочие ошибки. */ }
    }
       //sampleEnd
    }

## Constructors

FMPResult
Link copied to clipboard
constructor(status: Boolean, result: T, response: FMPResponse? = null, exception: FMPException? = null)

## Properties

exception
Link copied to clipboard
val exception: FMPException? = null

Возникший при работе Exception.

response
Link copied to clipboard
val response: FMPResponse? = null

HTTP ответ от сервера. Null если запрос к серверу не выполнялся. В случае, когда метод выполняет несколько запросов к серверу, как, например, FMPQuery.download, то, в случае ошибки, возвращается первый ответ с ошибкой. В случае успеха возвращается последний успешный ответ.

result
Link copied to clipboard
val result: T

Результат запроса. В случае с Boolean обозначает, что цель запроса была выполнена успешно. Пожалуйста, смотрите документацию к конкретным методам для более подробной информации.

status
Link copied to clipboard
val status: Boolean

Статус успеха выполнения запроса. Обычно означает, что запрос выполнен до конца без критических ошибок и можно продолжать работу. Пожалуйста, смотрите документацию к конкретным методам для более подробной информации.

## Functions

onError
Link copied to clipboard
fun onError(action: (FMPException?) -> Unit): FMPResult<T>

Выполнить код, если запрос не был успешен. `it` является exception запроса, например, NetworkIOException. Неуспешным считается запрос, у которого status равен `false`.

onResult
Link copied to clipboard
fun onResult(action: (T) -> Unit): FMPResult<T>

Выполнить код в любом случае по результату, игнорируя ошибки. `it` является результатом запроса, например, статус аутентификации - при этом может быть "пустым" по умолчанию в случае ошибок.

onSuccess
Link copied to clipboard
fun onSuccess(action: (T) -> Unit): FMPResult<T>

Выполнить код, если запрос был успешен. `it` является результатом запроса, например, статус аутентификации. Успешным считается запрос, у которого status равен `true`.