func build()

in source/UberRides/Model/RideRequestDataBuilder.swift [52:107]


    func build() -> Data? {
        var data = [String: Any]()
        
        if let productID = rideParameters.productID {
            data[productIDKey] = productID
        }
        
        if let pickupLocation = rideParameters.pickupLocation {
            data["\(pickupKey)_\(latitudeKey)"] = pickupLocation.coordinate.latitude
            data["\(pickupKey)_\(longitudeKey)"] = pickupLocation.coordinate.longitude
        } else if let pickupPlace = rideParameters.pickupPlaceID {
            data["\(pickupKey)_\(placeIDKey)"] = pickupPlace
        }
        
        if let pickupNickname = rideParameters.pickupNickname {
            data["\(pickupKey)_\(nicknameKey)"] = pickupNickname
        }
        
        if let pickupAddress = rideParameters.pickupAddress {
            data["\(pickupKey)_\(addressKey)"] = pickupAddress
        }
        
        if let dropoffLocation = rideParameters.dropoffLocation {
            data["\(dropoffKey)_\(latitudeKey)"] = dropoffLocation.coordinate.latitude
            data["\(dropoffKey)_\(longitudeKey)"] = dropoffLocation.coordinate.longitude
        } else if let dropoffPlace = rideParameters.dropoffPlaceID {
            data["\(dropoffKey)_\(placeIDKey)"] = dropoffPlace
        }
        
        if let dropoffNickname = rideParameters.dropoffNickname {
            data["\(dropoffKey)_\(nicknameKey)"] = dropoffNickname
        }
        
        if let dropoffAddress = rideParameters.dropoffAddress {
            data["\(dropoffKey)_\(addressKey)"] = dropoffAddress
        }
        
        if let paymentMethod = rideParameters.paymentMethod {
            data["\(paymentMethodKey)"] = paymentMethod
        }
        
        if let surgeConfirmation = rideParameters.surgeConfirmationID {
            data["\(surgeConfirmationKey)"] = surgeConfirmation
        }

        if let upfrontFareID = rideParameters.upfrontFare?.fareID {
            data[upfrontFareKey] = upfrontFareID
        }
        
        var bodyData: Data?
        do {
            bodyData = try JSONSerialization.data(withJSONObject: data, options: [])
            return bodyData
        } catch { }
        return nil
    }