Rev 6569 | Rev 6679 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
package in.shop2020.support.controllers;import in.shop2020.model.v1.user.Coupon;import in.shop2020.model.v1.user.PromotionException;import in.shop2020.support.utils.ReportsUtils;import in.shop2020.thrift.clients.PromotionClient;import java.text.DateFormat;import java.text.SimpleDateFormat;import java.util.ArrayList;import java.util.Calendar;import java.util.Date;import java.util.List;import javax.servlet.ServletContext;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpSession;import org.apache.commons.lang.StringUtils;import org.apache.struts2.convention.annotation.InterceptorRef;import org.apache.struts2.convention.annotation.InterceptorRefs;import org.apache.struts2.convention.annotation.Result;import org.apache.struts2.convention.annotation.Results;import org.apache.struts2.interceptor.ServletRequestAware;import org.apache.struts2.util.ServletContextAware;import org.apache.thrift.TException;import org.json.JSONException;import org.json.JSONObject;import org.slf4j.Logger;import org.slf4j.LoggerFactory;@InterceptorRefs({@InterceptorRef("defaultStack"),@InterceptorRef("login")})@Results({@Result(name="authfail", type="redirectAction", params = {"actionName" , "reports"}),@Result(name="redirect", type="redirectAction", location = "coupon-gvs", params={"statusCode", "301"})})public class CouponGvsController implements ServletRequestAware, ServletContextAware {private static Logger logger = LoggerFactory.getLogger(CouponGvsController.class);private HttpServletRequest request;private HttpServletResponse response;private HttpSession session;private ServletContext context;private PromotionClient psc;private in.shop2020.model.v1.user.PromotionService.Client pClient;private final DateFormat formatter = new SimpleDateFormat("EEE, dd-MMM-yyyy hh:mm a");private String coupon;private long type;private Long amount;private String userEmail;public CouponGvsController(){try {psc = new PromotionClient();pClient = psc.getClient();} catch (Exception e) {logger.error("Error connecting to promotion service", e);}}public String index() {if(!ReportsUtils.canAccessReport((Long)session.getAttribute(ReportsUtils.ROLE), request.getServletPath())) {return "authfail";}return "authsuccess";}public String create(){if(!ReportsUtils.canAccessReport((Long)session.getAttribute(ReportsUtils.ROLE), request.getServletPath())) {return "authfail";}//Coupon would we valid till 2 months of cretaion.Calendar cal = Calendar.getInstance();cal.add(Calendar.DATE, 60);Date endOn = cal.getTime();if(!(StringUtils.isEmpty(userEmail) || amount == null) ) {try {coupon = pClient.createCoupon(type, endOn.getTime(), userEmail, amount, false, 1, null);} catch (Exception e){return "authsuccess";}}return "authsuccess";}@Overridepublic void setServletContext(ServletContext context) {this.context= context;}@Overridepublic void setServletRequest(HttpServletRequest req) {this.request = req;this.session = req.getSession();}//Creapublic String getCoupon() {return coupon;}public void setCoupon(String coupon) {this.coupon = coupon;}public long getType() {return type;}public void setType(long type) {this.type = type;}public Long getAmount() {return amount;}public void setAmount(Long amount) {this.amount = amount;}public String getUserEmail() {return userEmail;}public void setUserEmail(String userEmail) {this.userEmail = userEmail;}public List<Coupon> getCoupons() {try {return pClient.getActiveCodes(27l);} catch (PromotionException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (TException e) {// TODO Auto-generated catch blocke.printStackTrace();}return null;}public List<String> getArguments(Coupon coupon){List<String> result = new ArrayList<String>();try {JSONObject obj = new JSONObject(coupon.getArguments());result.add(obj.getJSONArray("emails").getString(0));result.add(obj.getString("discount"));} catch (JSONException e) {// TODO Auto-generated catch blocke.printStackTrace();}return result;}public void setId(String id) {this.coupon = id;}public String destroy(){if(!ReportsUtils.canAccessReport((Long)session.getAttribute(ReportsUtils.ROLE), request.getServletPath().split("/")[1])) {return "athfail";}try {pClient.deleteCoupon(coupon);} catch (PromotionException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (TException e) {// TODO Auto-generated catch blocke.printStackTrace();}return "redirect";}public String show(){return destroy();}public String getServletContextPath() {return context.getContextPath();}}