Vernissage/ServicesKit/Sources/ServicesKit/ErrorsService.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)")
}
}