package com.mozu.api.sample.events; import javax.annotation.PostConstruct; import org.apache.http.HttpStatus; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.mozu.api.ApiContext; import com.mozu.api.contracts.commerceruntime.carts.Cart; import com.mozu.api.contracts.event.Event; import com.mozu.api.events.EventManager; import com.mozu.api.events.handlers.CartEventHandler; import com.mozu.api.events.model.EventHandlerStatus; import com.mozu.api.resources.commerce.CartResource; import com.mozu.api.security.AppAuthenticator; import com.mozu.api.security.AuthTicket; public class CartEventHandlerImpl implements CartEventHandler { private static final Logger logger = LoggerFactory.getLogger(CartEventHandlerImpl.class); public CartEventHandlerImpl() { } @PostConstruct public static final void initialize() { EventManager.getInstance().registerHandler(new CartEventHandlerImpl()); logger.info("Cart event handler initialized"); } @Override public EventHandlerStatus created(ApiContext apiContext, Event event) { logger.info("Got a created cart event"); return processCartEvent(apiContext, event); } @Override public EventHandlerStatus updated(ApiContext apiContext, Event event) { logger.info("Got an updated cart event"); return processCartEvent(apiContext, event); } @Override public EventHandlerStatus deleted(ApiContext apiContext, Event event) { logger.info("Got a deleted cart event"); return processCartEvent(apiContext, event); } private EventHandlerStatus processCartEvent(ApiContext apiContext, Event event) { AuthTicket authTicket = (AuthTicket) AppAuthenticator.getInstance().getAppAuthTicket(); apiContext.setUserAuthTicket(authTicket); CartResource cartResource = new CartResource(apiContext); try { Cart cart = cartResource.getCart(event.getEntityId()); // Do something with cart info } catch (Exception e) { StringBuilder msg = new StringBuilder ("Unable to process created event: ").append(e.getMessage()); logger.error(msg.toString()); return new EventHandlerStatus(msg.toString(), HttpStatus.SC_INTERNAL_SERVER_ERROR); } apiContext.setUserAuthTicket(null); return new EventHandlerStatus(HttpStatus.SC_OK); } }