46 lines
1.6 KiB
Swift
46 lines
1.6 KiB
Swift
//
|
|
// https://mczachurski.dev
|
|
// Copyright © 2023 Marcin Czachurski and the repository contributors.
|
|
// Licensed under the Apache License 2.0.
|
|
//
|
|
|
|
import Foundation
|
|
import OSLog
|
|
import EnvironmentKit
|
|
import PixelfedKit
|
|
|
|
public class ErrorService {
|
|
public static let shared = ErrorService()
|
|
private init() { }
|
|
|
|
public func handle(_ error: Error, message: LocalizedStringResource, showToastr: Bool = false) {
|
|
let localizedMessage = NSLocalizedString(message.key, comment: "Error message")
|
|
|
|
if showToastr {
|
|
switch error {
|
|
case is LocalizedError:
|
|
ToastrService.shared.showError(title: message, subtitle: error.localizedDescription)
|
|
default:
|
|
ToastrService.shared.showError(title: "", subtitle: localizedMessage)
|
|
}
|
|
}
|
|
|
|
Logger.main.error("Error ['\(localizedMessage)']: \(error.localizedDescription)")
|
|
Logger.main.error("Error ['\(localizedMessage)']: \(error)")
|
|
}
|
|
|
|
public func handle(_ error: Error, localizedMessage: String, showToastr: Bool = false) {
|
|
if showToastr {
|
|
switch error {
|
|
case is LocalizedError:
|
|
ToastrService.shared.showError(localizedMessage: localizedMessage, subtitle: error.localizedDescription)
|
|
default:
|
|
ToastrService.shared.showError(title: "", subtitle: localizedMessage)
|
|
}
|
|
}
|
|
|
|
Logger.main.error("Error ['\(localizedMessage)']: \(error.localizedDescription)")
|
|
Logger.main.error("Error ['\(localizedMessage)']: \(error)")
|
|
}
|
|
}
|