package org.onehippo.forge.konakart.gogreen.hippo.visitor;
import org.onehippo.forge.konakart.gogreen.database.helper.ProductHelper;
import org.onehippo.forge.konakart.gogreen.database.helper.ReviewHelper;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import javax.jcr.Node;
import javax.jcr.RepositoryException;
import javax.jcr.nodetype.NodeTypeDefinition;
/**
*
*/
public class CreateReviewVisitor implements Visitor {
public static final Logger log = LoggerFactory.getLogger(CreateReviewVisitor.class);
@Override
public void visit(Node node) {
try {
NodeTypeDefinition nodeTypeDefinition = node.getPrimaryNodeType();
if (nodeTypeDefinition.getName().equals("hippogogreen:review")) {
// Get the name from the handle
log.debug(node.getName());
ReviewHelper reviewHelper = new ReviewHelper();
reviewHelper.setDateAdded(node.getProperty("hippostdpubwf:creationDate").getDate());
reviewHelper.setReviewText(node.getProperty("hippogogreen:comment").getString());
reviewHelper.setRating((int) node.getProperty("hippogogreen:rating").getLong());
reviewHelper.setCustomerName(node.getProperty("hippogogreen:name").getString());
reviewHelper.setCustomerEmail(node.getProperty("hippogogreen:email").getString());
// Get the product link
String id = node.getNode("hippogogreen:productlink").getProperty("hippo:docbase").getString();
reviewHelper.setProductId(ProductHelper.productsMapping.get(id));
reviewHelper.process();
}
} catch (Exception e) {
log.error("Failed to insert review", e);
}
}
}