Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 862fba8

Browse files
committed
improve error handling
1 parent 20b7a6d commit 862fba8

File tree

2 files changed

+15
-10
lines changed

2 files changed

+15
-10
lines changed

Coder-Desktop/Coder-Desktop/URLHandler.swift

+13-8
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import Foundation
2+
import SwiftUI
23
import VPNLib
34

45
@MainActor
@@ -29,32 +30,36 @@ class URLHandler {
2930

3031
switch route {
3132
case let .open(workspace, agent, type):
32-
switch type {
33-
case let .rdp(creds):
34-
try handleRDP(workspace: workspace, agent: agent, creds: creds)
33+
do {
34+
switch type {
35+
case let .rdp(creds):
36+
try handleRDP(workspace: workspace, agent: agent, creds: creds)
37+
}
38+
} catch {
39+
throw .openError(error)
3540
}
3641
}
3742
}
3843

39-
private func handleRDP(workspace: String, agent: String, creds: RDPCredentials) throws(URLError) {
44+
private func handleRDP(workspace: String, agent: String, creds: RDPCredentials) throws(OpenError) {
4045
guard vpn.state == .connected else {
41-
throw .openError(.coderConnectOffline)
46+
throw .coderConnectOffline
4247
}
4348

4449
guard let workspace = vpn.menuState.findWorkspace(name: workspace) else {
45-
throw .openError(.invalidWorkspace(workspace: workspace))
50+
throw .invalidWorkspace(workspace: workspace)
4651
}
4752

4853
guard let agent = vpn.menuState.findAgent(workspaceID: workspace.id, name: agent) else {
49-
throw .openError(.invalidAgent(workspace: workspace.name, agent: agent))
54+
throw .invalidAgent(workspace: workspace.name, agent: agent)
5055
}
5156

5257
var rdpString = "rdp:full address=s:\(agent.primaryHost):3389"
5358
if let username = creds.username {
5459
rdpString += "&username=s:\(username)"
5560
}
5661
guard let url = URL(string: rdpString) else {
57-
throw .openError(.couldNotCreateRDPURL(rdpString))
62+
throw .couldNotCreateRDPURL(rdpString)
5863
}
5964

6065
let alert = NSAlert()

Coder-Desktop/VPNLib/CoderRouter.swift

+2-2
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ public enum RouterError: Error {
3535
case noSession
3636
case openError(OpenError)
3737

38-
var description: String {
38+
public var description: String {
3939
switch self {
4040
case let .invalidAuthority(authority):
4141
"Authority '\(authority)' does not match the host of the current Coder deployment."
@@ -48,7 +48,7 @@ public enum RouterError: Error {
4848
}
4949
}
5050

51-
var localizedDescription: String { description }
51+
public var localizedDescription: String { description }
5252
}
5353

5454
public enum OpenError: Error {

0 commit comments

Comments
 (0)