Skip to content

Instantly share code, notes, and snippets.

@IsaAliev
Created February 23, 2018 19:09
Show Gist options
  • Save IsaAliev/3cc24461ece069b10488d191e24be355 to your computer and use it in GitHub Desktop.
Save IsaAliev/3cc24461ece069b10488d191e24be355 to your computer and use it in GitHub Desktop.
import Foundation
struct BaseErrorHandler: ErrorHandler {
var errorCodeHandler: ErrorCodeHandler = BaseErrorCodeHandler()
var errorCodeGetter: ErrorCodeGetter = BaseErrorCodeGetter()
var errorMessageGetter: ErrorMessageGetter = BaseErrorMessageGetter()
func handleErrorResponse(_ response: ResponseRepresentable, completion: (ErrorRepresentable) -> ()) {
guard let httpResponse = response.response as? HTTPURLResponse else {
return
}
var errorMessage: String?
var errorCode = httpResponse.statusCode
if let data = response.data {
errorMessage = errorMessageGetter.messageFromErrorData(data)
errorCode = errorCodeGetter.errorCodeFrom(response)
}
let error = BaseError(errorCode: errorCode, message: errorMessage)
errorCodeHandler.handleError(with: errorCode)
completion(error)
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment