/* (non-Javadoc) * @see com.nebulent.vectura.services.resources.v1.AccountResource#createAccountRide(java.lang.String, nebulent.schema.software.vectura._1.Ride) */ @Override public Ride createAccountRide(String accountId, Ride ride) { if (StringUtils.isBlank(accountId)) { throw new BadRequestException( new StatusResponse(false, "Account ID is a required field.", null)); } ride.setAccountId(accountId); com.nebulent.vectura.data.model.mongodb.Ride mongoRide = DomainUtils.toRide(ride); mongoRide = getMongoRepository().getRideRepository().save(mongoRide); ride = DomainUtils.toRide(mongoRide); // Create pick-up location. Place place = new Place(); place.setAddress(ride.getDropOffAddress()); Place dropoffPlace = createAccountPlace(accountId, place); if (dropoffPlace != null) { ride.setDropOffAddress(dropoffPlace.getAddress()); } // Create drop-off location. place = new Place(); place.setAddress(ride.getPickupAddress()); Place pickupPlace = createAccountPlace(accountId, place); if (pickupPlace != null) { ride.setPickupAddress(pickupPlace.getAddress()); } return ride; }