Make AttractorServer setting nil by default

This commit is contained in:
James Magahern
2022-08-22 15:43:06 -07:00
parent 3b42984361
commit 58433bc59d
3 changed files with 39 additions and 5 deletions

View File

@@ -169,7 +169,7 @@ class GeneralSettingsViewController: UIViewController
cell.contentConfiguration = ButtonContentConfiguration(menu: menu)
} else if identifier == Self.SyncServerItem {
cell.contentConfiguration = TextFieldContentConfiguration(
text: Settings.shared.syncServer,
text: Settings.shared.syncServer ?? "",
placeholderText: "https://sync.server.com",
textChanged: { newString in
Settings.shared.syncServer = newString

View File

@@ -107,5 +107,22 @@ class Settings
public var userStylesheet: String = ""
@SettingProperty(key: "syncServer")
public var syncServer: String = "https://attractor.severnaya.net"
public var syncServer: Optional<String> = "https://attractor.severnaya.net"
}
extension Optional: RawRepresentable where Wrapped == String
{
public init?(rawValue: String?) {
if let rawValue {
self = String(rawValue: rawValue)
} else {
self = .none
}
}
public var rawValue: String? {
return self
}
public typealias RawValue = String?
}

View File

@@ -9,10 +9,20 @@ import Foundation
class AttractorServer
{
public enum Error: Swift.Error {
case missingEndpointURL
}
static let shared = AttractorServer()
private var endpointURL: URL {
get { URL(string: Settings.shared.syncServer) ?? URL(string: "http://localhost")! }
private var endpointURL: URL? {
get {
if let syncServer = Settings.shared.syncServer {
return URL(string: syncServer)
}
return nil
}
}
private func getHostname() -> String {
@@ -21,6 +31,8 @@ class AttractorServer
}
public func publishTabInfo(_ tabInfos: [TabInfo]) {
guard let endpointURL else { return }
let hostName = getHostname()
let rpcURL = endpointURL.appendingPathComponent("publishTabInfo")
var components = URLComponents(url: rpcURL, resolvingAgainstBaseURL: false)!
@@ -44,7 +56,12 @@ class AttractorServer
}
}
public func getTabInfos(_ completion: @escaping(Result<[String: [TabInfo]], Error>) -> Void) {
public func getTabInfos(_ completion: @escaping(Result<[String: [TabInfo]], Swift.Error>) -> Void) {
guard let endpointURL else {
completion(.failure(Self.Error.missingEndpointURL))
return
}
let rpcURL = endpointURL.appendingPathComponent("getTabInfos")
let request = URLRequest(url: rpcURL)
let myHostname = getHostname()