Rev 8582 | Rev 9155 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
package in.shop2020.serving.controllers;import java.io.File;import java.io.IOException;import java.util.ArrayList;import java.util.Calendar;import java.util.GregorianCalendar;import java.util.List;import org.apache.log4j.Logger;import org.apache.struts2.convention.annotation.Result;import org.apache.struts2.convention.annotation.Results;import javax.servlet.http.HttpServletRequest;import org.apache.commons.io.FileUtils;import org.apache.commons.lang.xwork.StringUtils;import in.shop2020.config.ConfigException;import in.shop2020.model.v1.catalog.Banner;import in.shop2020.model.v1.catalog.BannerCongregate;import in.shop2020.model.v1.catalog.BannerMap;import in.shop2020.model.v1.catalog.BannerUriMapping;import in.shop2020.model.v1.catalog.Campaign;import in.shop2020.model.v1.catalog.CatalogService.Client;import in.shop2020.serving.services.ScpService;import in.shop2020.thrift.clients.CatalogClient;import org.apache.thrift.TException;import org.apache.thrift.transport.TTransportException;@SuppressWarnings("serial")@Results({@Result(name = "redirect", location = "${url}", type = "redirect"),@Result(name = "newCampaign", location = "campaign-editNew.vm"),@Result(name = "campaignEdit", location = "campaignEdit.vm")})public class UserImageController extends BaseController {private static Logger log = Logger.getLogger(Class.class);private File userImage;private String filePath;private String userImageContentType;private String userImageFileName;private String url;private HttpServletRequest servletRequest;private String[] status;private String bannerName;private String link;private String priority;private String hasMap;private String action;private String[] mapLink;private String[] mapCoordinates;private String[] uri;private String id;private String newsletterName;private String imageName;private String campaignId;public String create() {try {filePath = servletRequest.getSession().getServletContext().getRealPath("/images/banners/");setUrl("/user-image");String imageName = null;if (StringUtils.isNotEmpty(userImageFileName)) {imageName = getImageName();File fileToCreate = new File(filePath, imageName);FileUtils.copyFile(this.userImage, fileToCreate);try {ScpService scp = new ScpService();scp.scpFile("/var/lib/tomcat6/webapps/ROOT/images/banners/"+imageName, filePath+"/"+imageName);} catch (Exception e) {log.error("Scp To Servers Failed",e);addActionError("Image Failed To Upload");return "redirect";}}else{Client CatalogClient = new CatalogClient().getClient();imageName =CatalogClient.getBannerDetails(action).getImageName();}if (StringUtils.isEmpty(link)) {log.info("Empty Link Field");this.link="#";}Banner banner = new Banner();banner.setBannerName(bannerName);banner.setImageName(imageName);banner.setLink(link);banner.setPriority(Long.parseLong(priority));banner.setHasMap(Boolean.parseBoolean(hasMap));List<BannerMap> bannerMaps = new ArrayList<BannerMap>();if(banner.isHasMap()) {for(int i=0;i<mapLink.length;i++){if(mapLink[i].isEmpty()) {continue;}BannerMap bannerMap = new BannerMap();bannerMap.setBannerName(bannerName);bannerMap.setCoordinates(mapCoordinates[i]);bannerMap.setMapLink(mapLink[i]);bannerMaps.add(bannerMap);}}List<BannerUriMapping> bannerUriMappings = new ArrayList<BannerUriMapping>();for (int i=0;i<uri.length;i++){if(uri[i].isEmpty()) {continue;}BannerUriMapping bannerUriMapping = new BannerUriMapping();bannerUriMapping.setBannerName(bannerName);bannerUriMapping.setUri(uri[i]);bannerUriMapping.setIsActive(Boolean.valueOf(status[i]));bannerUriMappings.add(bannerUriMapping);}BannerCongregate bannerCongregate = new BannerCongregate();bannerCongregate.setBanner(banner);bannerCongregate.setBannerMaps(bannerMaps);bannerCongregate.setBannerUriMappings(bannerUriMappings);Client CatalogClient = new CatalogClient().getClient();CatalogClient.addBanner(bannerCongregate);} catch (Exception e) {log.error("Error while uploading/changing map",e);addActionError("Failed To Do Changes");return "redirect";}addActionMessage("Changes Applied Successfully");return "index";}public String createNewsletter() throws IOException{filePath = servletRequest.getSession().getServletContext().getRealPath("/images/campaignImages/");setUrl("/user-image!editNewsletter?newsletterName="+this.newsletterName);if (StringUtils.isNotEmpty(userImageFileName)) {File fileToCreate = new File(filePath, imageName);FileUtils.copyFile(this.userImage, fileToCreate);ScpService scp = new ScpService();try {scp.scpFile("/var/lib/tomcat6/webapps/ROOT/images/campaignImages/"+imageName, filePath+"/"+imageName);} catch (ConfigException e) {log.info("Unable to do scp "+e);addActionError("Image Failed To Upload");return "redirect";}Campaign campaign = new Campaign();campaign.setCampaignName(this.newsletterName);campaign.setImageName(imageName);Client CatalogClient;try {CatalogClient = new CatalogClient().getClient();CatalogClient.addCampaign(campaign);} catch (Exception e) {log.info("Unable to add campaign "+e);addActionError("Failed To Do Changes");return "redirect";}addActionMessage("Changes Applied Successfully");return "redirect";}else{addActionError("Image Missing");return "redirect";}}public String deleteCampaign() {setUrl("/user-image!editNewsletter?newsletterName="+this.newsletterName);try {Client CatalogClient = new CatalogClient().getClient();CatalogClient.deleteCampaign(Long.valueOf(campaignId));addActionMessage("Image deleted");return "redirect";}catch (Exception e) {log.info("Unable to delete campaign "+e);addActionError("Unable to delete image");return "redirect";}}public void addBannerUriMapping(List<BannerUriMapping> bannerUriMappings) throws TException{Client CatalogClient = new CatalogClient().getClient();CatalogClient.addBannerUri(bannerUriMappings);}public void addBannerMap(List<BannerMap> bannerMaps) throws TException{Client CatalogClient = new CatalogClient().getClient();CatalogClient.addBannerMap(bannerMaps);}public List<Banner> getAllBanners() {Client CatalogClient = null;List<Banner> banners = null;try {CatalogClient = new CatalogClient().getClient();banners = CatalogClient.getAllBanners();} catch (TTransportException e) {log.info("Unable to fetch all banners "+e);} catch (TException ex) {log.info("Unable to fetch all banners "+ex);}return banners;}public String destroy() throws TException {Client CatalogClient = new CatalogClient().getClient();CatalogClient.deleteBanner(bannerName);setUrl("/user-image");return "redirect";}public Banner getUpdates() throws TException {Client CatalogClient = null;CatalogClient = new CatalogClient().getClient();return CatalogClient.getBannerDetails(bannerName);}public Banner getUpdates(String name) throws TException {Client CatalogClient = null;CatalogClient = new CatalogClient().getClient();return CatalogClient.getBannerDetails(name);}public List<BannerMap> getbannermapdetails() throws TException {Client CatalogClient = null;CatalogClient = new CatalogClient().getClient();return CatalogClient.getBannerMapDetails(bannerName);}public String getImageName() {Calendar cal=GregorianCalendar.getInstance();return String.valueOf(cal.getTimeInMillis())+".jpg";}public List<BannerUriMapping> getUriMapping(String bannerName) throws TException{Client CatalogClient = new CatalogClient().getClient();return CatalogClient.getUriMapping(bannerName);}public List<BannerUriMapping> getUriMapping() throws TException{Client CatalogClient = new CatalogClient().getClient();return CatalogClient.getUriMapping(bannerName);}public List<Campaign> getCampaigns(String campaignName) throws TException{Client CatalogClient = new CatalogClient().getClient();return CatalogClient.getCampaigns(campaignName);}public List<String> getAllCampaigns() throws TException{Client CatalogClient = new CatalogClient().getClient();log.info(CatalogClient.getAllCampaigns());return CatalogClient.getAllCampaigns();}public String index() {return "index";}public String show() {if (StringUtils.equals(id, "newCampaign")){log.info("Returing camapign edit new");return "newCampaign";}return "show";}public String editNewsletter(){return "campaignEdit";}public String edit() {return "edit";}public String editNew() {return "editNew";}public File getUserImage() {return userImage;}public void setUserImage(File userImage) {log.info("set file"+userImage.toString());this.userImage = userImage;}public String getUserImageContentType() {return userImageContentType;}public void setUserImageContentType(String userImageContentType) {this.userImageContentType = userImageContentType;}public String getUserImageFileName() {return userImageFileName;}public void setUserImageFileName(String userImageFileName) {log.info("userimage file name set"+userImageFileName);this.userImageFileName = userImageFileName;}public void setUrl(String url) {this.url = url;}public String getUrl() {return url;}public void setIsActive(String[] isActive) {this.status=isActive;}public String[] getIsActive() {return status;}public void setBannerName(String bannerName) {this.bannerName=bannerName;}public String getBannerName() {return bannerName;}public void setLink(String link) {this.link=link;}public String getLink() {return link;}public void setAction(String action) {this.action=action;}public String getAction() {return action;}public void setPriority(String priority) {this.priority=priority;}public String getPriority() {return priority;}public void setId(String id) {log.info("set id banner "+id);this.id = id;this.bannerName = id;}public String[] getMapLink() {return mapLink;}public void setMapLink(String[] mapLink) {this.mapLink = mapLink;}public String[] getMapCoordinates() {return mapCoordinates;}public void setMapCoordinates(String[] mapCoordinates) {this.mapCoordinates = mapCoordinates;}public void setUri(String[] uri) {this.uri = uri;}public String[] getUri() {return uri;}public void setHasMap(String hasMap) {this.hasMap=hasMap;}public String getHasMap() {return hasMap;}public void setNewsletterName(String newsletterName) {this.newsletterName = newsletterName;}public String getNewsletterName() {return newsletterName;}public void setCampaignId(String campaignId) {this.campaignId = campaignId;}public String getCampaignId() {return campaignId;}@Overridepublic void setServletRequest(HttpServletRequest servletRequest) {this.servletRequest = servletRequest;}public void setImageName(String imageName) {this.imageName = imageName;}}