42 lines
1018 B
Swift
42 lines
1018 B
Swift
//
|
|
// Mastodon+Entity+Error.swift
|
|
// Mastodon
|
|
//
|
|
// Created by MainasuK Cirno on 2021-3-4.
|
|
//
|
|
|
|
import Foundation
|
|
import MastodonSDK
|
|
|
|
extension Mastodon.API.Error: LocalizedError {
|
|
|
|
public var errorDescription: String? {
|
|
guard let mastodonError = mastodonError else {
|
|
return "HTTP \(httpResponseStatus.code)"
|
|
}
|
|
switch mastodonError {
|
|
case .generic(let error):
|
|
if let _ = error.details {
|
|
return nil // Duplicated with the details
|
|
} else {
|
|
return error.error
|
|
}
|
|
}
|
|
}
|
|
|
|
public var failureReason: String? {
|
|
guard let mastodonError = mastodonError else {
|
|
return httpResponseStatus.reasonPhrase
|
|
}
|
|
switch mastodonError {
|
|
case .generic(let error):
|
|
if let details = error.details {
|
|
return details.failureReason
|
|
} else {
|
|
return error.errorDescription
|
|
}
|
|
}
|
|
}
|
|
|
|
}
|