in Sources/UberAuth/Networking/NetworkRequest.swift [59:105]
func urlRequest(baseUrl: String) -> URLRequest? {
guard var components = URLComponents(string: baseUrl) else {
return nil
}
if let host {
components.host = host
}
if let scheme {
components.scheme = scheme
}
components.path = path
components.queryItems = parameters?.map { (name, value) in
URLQueryItem(name: name, value: value)
}
guard let url = components.url else {
return nil
}
var urlRequest = URLRequest(url: url)
urlRequest.httpMethod = method.rawValue
// Headers
urlRequest.allHTTPHeaderFields = {
let defaultHeaders = [
"Accept-Encoding": "gzip, deflate",
"Content-Type": contentType
]
.compactMapValues { $0 }
return defaultHeaders
.merging(
headers ?? [:],
uniquingKeysWith: { h1, h2 in h1 }
)
}()
// Body
urlRequest.httpBody = {
var components = URLComponents()
components.queryItems = body?.map { URLQueryItem(name: $0.key, value: $0.value) }
return components.query?.data(using: .utf8)
}()
return urlRequest
}