import Foundation
import OpenAPIRuntime

public extension Error {
    var underlyingError: String {
        if let clientError = self as? OpenAPIRuntime.ClientError {
            return clientError.underlyingError.localizedDescription
        } else if let serverError = self as? OpenAPIRuntime.ServerError {
            return serverError.underlyingError.localizedDescription
        }
        return self.localizedDescription
    }

    var underlyingApiError: APIError? {
        if let clientError = self as? OpenAPIRuntime.ClientError,
           let apiError = clientError.underlyingError as? APIError
        {
            return apiError
        } else if let apiError = self as? APIError {
            return apiError
        }
        return nil
    }
}
