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")
 | |
|     }
 | |
| }
 |