mirror of
https://github.com/Novaloop-AG/element-x-ios.git
synced 2026-11-03 06:55:59 +00:00
Add a WebRegistrationScreen (not included in the flow yet). (#3281)
This commit is contained in:
@@ -0,0 +1,32 @@
|
||||
//
|
||||
// Copyright 2024 New Vector Ltd.
|
||||
//
|
||||
// SPDX-License-Identifier: AGPL-3.0-only
|
||||
// Please see LICENSE in the repository root for full details.
|
||||
//
|
||||
|
||||
import Foundation
|
||||
import MatrixRustSDK
|
||||
|
||||
extension ClientProtocol {
|
||||
func getElementWellKnown() async -> Result<MatrixRustSDK.ElementWellKnown, ClientProxyError> {
|
||||
do {
|
||||
let serverName = if let userIDServerName = try? userIdServerName() {
|
||||
"https://\(userIDServerName)"
|
||||
} else {
|
||||
server()
|
||||
}
|
||||
|
||||
guard let serverName,
|
||||
let url = URL(string: serverName)?.appending(path: "/.well-known/element/element.json") else {
|
||||
return .failure(.invalidServerName)
|
||||
}
|
||||
|
||||
let response = try await getUrl(url: url.absoluteString)
|
||||
let wellKnown = try makeElementWellKnown(string: response)
|
||||
return .success(wellKnown)
|
||||
} catch {
|
||||
return .failure(.sdkError(error))
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -594,20 +594,7 @@ class ClientProxy: ClientProxyProtocol {
|
||||
}
|
||||
|
||||
func getElementWellKnown() async -> Result<ElementWellKnown?, ClientProxyError> {
|
||||
guard let userIDServerName,
|
||||
var url = URL(string: "https://\(userIDServerName)") else {
|
||||
return .failure(.invalidUserIDServerName)
|
||||
}
|
||||
|
||||
url.append(path: "/.well-known/element/element.json")
|
||||
|
||||
do {
|
||||
let response = try await client.getUrl(url: url.absoluteString)
|
||||
let sdkWellKnown = try makeElementWellKnown(string: response)
|
||||
return .success(ElementWellKnown(sdkWellKnown))
|
||||
} catch {
|
||||
return .failure(.sdkError(error))
|
||||
}
|
||||
await client.getElementWellKnown().map(ElementWellKnown.init)
|
||||
}
|
||||
|
||||
// MARK: Ignored users
|
||||
|
||||
@@ -32,7 +32,7 @@ enum ClientProxyError: Error {
|
||||
case sdkError(Error)
|
||||
|
||||
case invalidMedia
|
||||
case invalidUserIDServerName
|
||||
case invalidServerName
|
||||
case failedUploadingMedia(Error, MatrixErrorCode)
|
||||
case roomPreviewIsPrivate
|
||||
}
|
||||
|
||||
@@ -19,8 +19,10 @@ struct ElementWellKnown {
|
||||
}
|
||||
|
||||
let call: Call?
|
||||
let registrationHelperURL: URL?
|
||||
|
||||
init?(_ wellKnown: MatrixRustSDK.ElementWellKnown) {
|
||||
call = Call(wellKnown.call)
|
||||
call = wellKnown.call.flatMap(Call.init)
|
||||
registrationHelperURL = wellKnown.registrationHelperUrl.flatMap(URL.init)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user