mirror of
https://github.com/SideStore/SideStore.git
synced 2026-02-10 07:13:28 +01:00
Refactors ConnectionManager to use arbitrary RequestHandlers and ConnectionHandlers. This allows the core AltServer request logic to be shared across different targets with different connection types.
37 lines
1.1 KiB
Swift
37 lines
1.1 KiB
Swift
//
|
|
// ALTServerError+Conveniences.swift
|
|
// AltKit
|
|
//
|
|
// Created by Riley Testut on 6/4/20.
|
|
// Copyright © 2020 Riley Testut. All rights reserved.
|
|
//
|
|
|
|
import Foundation
|
|
|
|
public extension ALTServerError
|
|
{
|
|
init<E: Error>(_ error: E)
|
|
{
|
|
switch error
|
|
{
|
|
case let error as ALTServerError: self = error
|
|
case is DecodingError: self = ALTServerError(.invalidRequest, underlyingError: error)
|
|
case is EncodingError: self = ALTServerError(.invalidResponse, underlyingError: error)
|
|
case let error as NSError:
|
|
var userInfo = error.userInfo
|
|
if !userInfo.keys.contains(NSUnderlyingErrorKey)
|
|
{
|
|
// Assign underlying error (if there isn't already one).
|
|
userInfo[NSUnderlyingErrorKey] = error
|
|
}
|
|
|
|
self = ALTServerError(.unknown, userInfo: error.userInfo)
|
|
}
|
|
}
|
|
|
|
init<E: Error>(_ code: ALTServerError.Code, underlyingError: E)
|
|
{
|
|
self = ALTServerError(.invalidRequest, userInfo: [NSUnderlyingErrorKey: underlyingError])
|
|
}
|
|
}
|