37 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Swift
		
	
	
		
		
			
		
	
	
			37 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Swift
		
	
	
|  | // | ||
|  | //  GuruAnalyticsErrorHandleDelegate.swift | ||
|  | //  Alamofire | ||
|  | // | ||
|  | //  Created by mayue on 2023/10/27. | ||
|  | // | ||
|  | 
 | ||
|  | import Foundation | ||
|  | 
 | ||
|  | internal enum GuruAnalyticsNetworkLayerErrorCategory: Int { | ||
|  |     case unknown = -100 | ||
|  |     case serverAPIError = 101 | ||
|  |     case responseParsingError = 102 | ||
|  |     case googleDNSServiceError = 106 | ||
|  | } | ||
|  | 
 | ||
|  | @objc internal protocol GuruAnalyticsNetworkErrorReportDelegate { | ||
|  |     func reportError(networkError: GuruAnalyticsNetworkError) -> Void | ||
|  | } | ||
|  | 
 | ||
|  | internal class GuruAnalyticsNetworkError: NSError { | ||
|  |     private(set) var httpStatusCode: Int? | ||
|  |     private(set) var originError: Error | ||
|  |     private(set) var internalErrorCategory: GuruAnalyticsNetworkLayerErrorCategory | ||
|  |      | ||
|  |     init(httpStatusCode: Int? = nil, internalErrorCategory: GuruAnalyticsNetworkLayerErrorCategory, originError: Error) { | ||
|  |         self.httpStatusCode = httpStatusCode | ||
|  |         self.originError = originError | ||
|  |         self.internalErrorCategory = internalErrorCategory | ||
|  |         super.init(domain: "com.guru.analytics.network.layer", code: internalErrorCategory.rawValue, userInfo: (originError as NSError).userInfo) | ||
|  |     } | ||
|  |      | ||
|  |     required init?(coder: NSCoder) { | ||
|  |         fatalError("init(coder:) has not been implemented") | ||
|  |     } | ||
|  | } |