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
}