public String addUnicornToBasket()

in MonoToMicroLambda/src/main/java/com/monoToMicro/Lambda/UnicornBasketImpl.java [49:91]


	public String addUnicornToBasket(UnicornBasket unicornBasket, Context context) {
						
		//Build the DDB instance connection
		AmazonDynamoDB client = AmazonDynamoDBClientBuilder.standard().build();				
		DynamoDBMapper mapper = new DynamoDBMapper(client);
				
		//Get current basket
		UnicornBasket currentBasket = mapper.load(UnicornBasket.class, unicornBasket.getUuid());
		
		//if there is no current basket then use the incoming basket as the new basket
		if(currentBasket==null) {
			if(unicornBasket.getUuid()!=null && unicornBasket.getUnicorns()!=null) {
				mapper.save(unicornBasket);
				return "Added Unicorn to basket";
			}
			return "No basket exist and none was created";
		}
		
		//basket already exist, will check if item exist and add if not found
		List<Unicorn> currentUnicorns = currentBasket.getUnicorns();		
		List<Unicorn> unicornsToAdd = unicornBasket.getUnicorns();
		
		//Assuming only one will be added but checking for null or empty values
		if(unicornsToAdd!=null && !unicornsToAdd.isEmpty()) {
		
			Unicorn unicornToAdd = unicornsToAdd.get(0);
			String unicornToAddUuid = unicornToAdd.getUuid();
		
			for (Unicorn currentUnicorn: currentUnicorns) {
				if(currentUnicorn.getUuid().equals(unicornToAddUuid)) {
					//The unicorn already exists, no need to add him.
					return "Unicorn already exists!";
				}							
			}
			
			//Unicorn was not found, need to add and save
			currentUnicorns.add(unicornToAdd);
			currentBasket.setUnicorns(currentUnicorns);
			mapper.save(currentBasket);
			return "Added Unicorn to basket";
		}		
		return "Are you sure you added a Unicorn?";
	}