func urlRequest()

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
    }