in Sources/UberAuth/Errors/UberAuthError.swift [91:120]
init?(_ response: HTTPURLResponse) {
// Only return errors for failed status codes
switch response.statusCode {
case (0 ..< 300):
return nil
default:
break
}
guard let url = response.url else {
self = .oAuth(.invalidRequest)
return
}
guard let components = URLComponents(url: url, resolvingAgainstBaseURL: false) else {
self = .oAuth(.invalidRequest)
return
}
// Check for error url query parameter
guard let queryItems = components.queryItems,
let errorString = queryItems.first(where: { $0.name == "error" })?.value,
let error = OAuthError(rawValue: errorString) else {
self = .oAuth(.invalidRequest)
return
}
self = .init(error: error)
}