ganfra
2 years ago
44 changed files with 372 additions and 244 deletions
@ -0,0 +1,27 @@
@@ -0,0 +1,27 @@
|
||||
/* |
||||
* Copyright (c) 2023 New Vector Ltd |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* http://www.apache.org/licenses/LICENSE-2.0 |
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
|
||||
package io.element.android.libraries.core.extensions |
||||
|
||||
/** |
||||
* Can be used to transform some Throwable into some other |
||||
*/ |
||||
inline fun <R, T : R> Result<T>.mapFailure(transform: (exception: Throwable) -> Throwable): Result<R> { |
||||
return when (val exception = exceptionOrNull()) { |
||||
null -> this |
||||
else -> Result.failure(transform(exception)) |
||||
} |
||||
} |
@ -0,0 +1,25 @@
@@ -0,0 +1,25 @@
|
||||
/* |
||||
* Copyright (c) 2023 New Vector Ltd |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* http://www.apache.org/licenses/LICENSE-2.0 |
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
|
||||
package io.element.android.libraries.matrix.api.auth |
||||
|
||||
sealed class AuthenticationException(message: String) : Exception(message) { |
||||
class ClientMissing(message: String) : AuthenticationException(message) |
||||
class InvalidServerName(message: String) : AuthenticationException(message) |
||||
class SlidingSyncNotAvailable(message: String) : AuthenticationException(message) |
||||
class SessionMissing(message: String) : AuthenticationException(message) |
||||
class Generic(message: String) : AuthenticationException(message) |
||||
} |
@ -0,0 +1,31 @@
@@ -0,0 +1,31 @@
|
||||
/* |
||||
* Copyright (c) 2023 New Vector Ltd |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* http://www.apache.org/licenses/LICENSE-2.0 |
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
|
||||
package io.element.android.libraries.matrix.impl.auth |
||||
|
||||
import io.element.android.libraries.matrix.api.auth.AuthenticationException |
||||
import org.matrix.rustcomponents.sdk.AuthenticationException as RustAuthenticationException |
||||
|
||||
fun Throwable.mapAuthenticationException(): Throwable { |
||||
return when (this) { |
||||
is RustAuthenticationException.ClientMissing -> AuthenticationException.ClientMissing(this.message!!) |
||||
is RustAuthenticationException.Generic -> AuthenticationException.Generic(this.message!!) |
||||
is RustAuthenticationException.InvalidServerName -> AuthenticationException.InvalidServerName(this.message!!) |
||||
is RustAuthenticationException.SessionMissing -> AuthenticationException.SessionMissing(this.message!!) |
||||
is RustAuthenticationException.SlidingSyncNotAvailable -> AuthenticationException.SlidingSyncNotAvailable(this.message!!) |
||||
else -> this |
||||
} |
||||
} |
@ -0,0 +1,28 @@
@@ -0,0 +1,28 @@
|
||||
/* |
||||
* Copyright (c) 2023 New Vector Ltd |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* http://www.apache.org/licenses/LICENSE-2.0 |
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
|
||||
package io.element.android.libraries.matrix.impl.auth |
||||
|
||||
import io.element.android.libraries.matrix.api.auth.MatrixHomeServerDetails |
||||
import org.matrix.rustcomponents.sdk.HomeserverLoginDetails |
||||
|
||||
fun HomeserverLoginDetails.map(): MatrixHomeServerDetails = use { |
||||
MatrixHomeServerDetails( |
||||
url = url(), |
||||
supportsPasswordLogin = supportsPasswordLogin(), |
||||
authenticationIssuer = authenticationIssuer() |
||||
) |
||||
} |
Loading…
Reference in new issue