From 7154cd127594d5438c1729577fee96d3ca4a40bd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?K=C3=A9vin=20Commaille?= Date: Thu, 30 Mar 2023 14:55:50 +0200 Subject: [PATCH] session: Use accessor to get client api error kind --- .../user_page/change_password_subpage.rs | 28 +++--------------- src/session/mod.rs | 29 ++++++------------- src/session/room_creation/mod.rs | 19 ++++-------- 3 files changed, 18 insertions(+), 58 deletions(-) diff --git a/src/session/account_settings/user_page/change_password_subpage.rs b/src/session/account_settings/user_page/change_password_subpage.rs index c6bf6cf5..d9fe9406 100644 --- a/src/session/account_settings/user_page/change_password_subpage.rs +++ b/src/session/account_settings/user_page/change_password_subpage.rs @@ -5,18 +5,9 @@ use gtk::{ CompositeTemplate, }; use log::error; -use matrix_sdk::{ - ruma::{ - api::{ - client::{ - account::change_password, - error::{Error as ClientApiError, ErrorBody, ErrorKind}, - }, - error::FromHttpResponseError, - }, - assign, - }, - Error as MatrixError, HttpError, RumaApiError, +use matrix_sdk::ruma::{ + api::client::{account::change_password, error::ErrorKind}, + assign, }; use crate::{ @@ -286,18 +277,7 @@ impl ChangePasswordSubpage { Err(error) => match error { AuthError::UserCancelled => {} AuthError::ServerResponse(error) - if matches!( - error.as_ref(), - MatrixError::Http(HttpError::Api(FromHttpResponseError::Server( - RumaApiError::ClientApi(ClientApiError { - body: ErrorBody::Standard { - kind: ErrorKind::WeakPassword, - .. - }, - .. - },) - )),) - ) => + if matches!(error.client_api_error_kind(), Some(ErrorKind::WeakPassword)) => { error!("Weak password: {error}"); toast!(self, gettext("Password rejected for being too weak")); diff --git a/src/session/mod.rs b/src/session/mod.rs index d2c6a62c..9fda29be 100644 --- a/src/session/mod.rs +++ b/src/session/mod.rs @@ -26,13 +26,10 @@ use matrix_sdk::{ config::SyncSettings, room::Room as MatrixRoom, ruma::{ - api::{ - client::{ - error::{Error as ClientApiError, ErrorBody, ErrorKind}, - filter::{FilterDefinition, LazyLoadOptions, RoomEventFilter, RoomFilter}, - session::logout, - }, - error::FromHttpResponseError, + api::client::{ + error::ErrorKind, + filter::{FilterDefinition, LazyLoadOptions, RoomEventFilter, RoomFilter}, + session::logout, }, assign, events::{ @@ -44,7 +41,7 @@ use matrix_sdk::{ RoomId, RoomOrAliasId, }, sync::SyncResponse, - Client, HttpError, RumaApiError, + Client, }; use ruma::{api::client::push::get_notifications::v3::Notification, EventId}; use tokio::task::JoinHandle; @@ -661,18 +658,10 @@ impl Session { } } Err(error) => { - if let matrix_sdk::Error::Http(HttpError::Api(FromHttpResponseError::Server( - RumaApiError::ClientApi(ClientApiError { - body: - ErrorBody::Standard { - kind: ErrorKind::UnknownToken { .. }, - .. - }, - .. - }), - ))) = &error - { - self.handle_logged_out(); + if let Some(kind) = error.client_api_error_kind() { + if matches!(kind, ErrorKind::UnknownToken { .. }) { + self.handle_logged_out(); + } } error!("Failed to perform sync: {error}"); } diff --git a/src/session/room_creation/mod.rs b/src/session/room_creation/mod.rs index c24d1968..9c43a098 100644 --- a/src/session/room_creation/mod.rs +++ b/src/session/room_creation/mod.rs @@ -4,16 +4,13 @@ use gtk::{gdk, glib, glib::clone, CompositeTemplate}; use log::error; use matrix_sdk::{ ruma::{ - api::{ - client::{ - error::{Error as ClientApiError, ErrorBody, ErrorKind}, - room::{create_room, Visibility}, - }, - error::FromHttpResponseError, + api::client::{ + error::ErrorKind, + room::{create_room, Visibility}, }, assign, }, - HttpError, RumaApiError, + HttpError, }; use ruma::events::{room::encryption::RoomEncryptionEventContent, InitialStateEvent}; @@ -227,13 +224,7 @@ impl RoomCreation { imp.content.set_sensitive(true); // Handle the room address already taken error. - if let HttpError::Api(FromHttpResponseError::Server(RumaApiError::ClientApi( - ClientApiError { - body: ErrorBody::Standard { kind, .. }, - .. - }, - ))) = &error - { + if let Some(kind) = error.client_api_error_kind() { if *kind == ErrorKind::RoomInUse { imp.room_address.add_css_class("error"); imp.room_address_error