# Остановка профилей

Если вы используете механизм блокировки, рекомендуется останавливать профили после их использования, но это не так необходимо. Если окно браузера было закрыто, то через 5 минут срок блокировки профиля истечет и другие пользователи смогут снова использовать профиль.

# Запрос

Запрос — «POST https://api.surfinite.com/profiles/{profile_id}/stop», и вы должны проверить его в Справочник API. Вам нужно только указать «profile_lock» в параметрах URL (ключ API не требуется).

# Коды ответов

Код Значение
200 Success. Профиль успешно остановлен
400 Incorrect query. Вы не указали profile_lock в параметрах запроса.
404 Not found. Идентификатор профиля и комбинация блокировки профиля не найдены. Это означает, что срок вашего сеанса истек или кто-то его переопределил. Вы не должны повторять запрос и можете считать это успешным.

# Пример кода

val profileId = "my_profile_id"
val profileLock = "profile_lock_from_start_response"

val url = "$apiUrl/profiles/$profileId/stop?profile_lock=$profileLock"

val client = HttpClient(CIO) { expectSuccess = true }
runCatching {
    client.post(url)
}.getOrElse { it: Throwable ->
    when (it) {
        is ClientRequestException -> {
            when (it.response.status) {
                HttpStatusCode.BadRequest -> println("You forgot to set profile_lock") // 400
                HttpStatusCode.NotFound -> {
                    // Session with this profileId and profileLock not found,
                    // usually should be treated as success
                    println("Profile not found")
                    return@getOrElse
                } // 404
                else -> println("Server responded with: ${it.response.status}")
            }
        }
        is TimeoutException -> println("Request timed out")
        is ConnectException -> println("Server does not respond or you have no internet")
        else -> {
            // Unknown error
            it.printStackTrace()
        }
    }
    return
}

println("Successfully stopped profile")