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?";
}