Subversion Repositories SmartDukaan

Rev

Rev 6879 | Rev 8582 | 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.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.model.v1.catalog.Banner;
import in.shop2020.model.v1.catalog.BannerMap;
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") })
   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 imageName;
    private String[] mapLink;
    private String[] mapCoordinates;
    public String create() {
        try {
            filePath = servletRequest.getSession().getServletContext().getRealPath("/images/banners/");
            setUrl("/user-image");
            if (StringUtils.isNotEmpty(userImageFileName)) {
            File fileToCreate = new File(filePath, this.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";
                }
            }
            if (StringUtils.isEmpty(link)) {
                log.info("Empty Link Field");
                this.link="#";
            }
            long rating = Long.parseLong(priority);
            boolean state = Boolean.parseBoolean(status);
            boolean containsMap = Boolean.parseBoolean(hasMap);
            log.info("Adding banner: "+"Banner Name"+bannerName+"Image Name"+imageName+"Link"+link+"Rating"+rating+"Status"+state+"Has Map"+containsMap);
            Client CatalogClient = new CatalogClient().getClient();
            if (StringUtils.isNotEmpty(action)) {
                CatalogClient.deleteBanner(action);
                CatalogClient.deleteBannerMap(action);
            }
            CatalogClient.addBanner(bannerName, imageName,link, rating, state, containsMap);
                if(containsMap) {
                        log.info("Found Map");
                   for(int i=0;i<mapLink.length;i++){
                           log.info("maplink"+mapLink[i]);
                           log.info("maplink"+mapCoordinates[i]);
                           if(mapLink[i].isEmpty()) {
                                  continue;
                           }
                       CatalogClient.addBannerMap(bannerName, mapLink[i], mapCoordinates[i]);
                   }    
                }
        } catch (Exception e) {   
                log.error("Error while uploading/changing map",e);
            addActionError("Failed To Do Changes");
            return "redirect";
        }
        addActionMessage("Changes Applied Successfully");
        return "redirect";
    }
    
    public List<String> getAllBanners() throws TException{
        Client CatalogClient = null;
                try {
                        CatalogClient = new CatalogClient().getClient();
                } catch (TTransportException e) {
                        e.printStackTrace();
                }
        return CatalogClient.getAllBanners();   
    }
    
    public String destroy() throws TException {
        Client CatalogClient = new CatalogClient().getClient();
        CatalogClient.deleteBanner(bannerName);
        CatalogClient.deleteBannerMap(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 index() {
        return "index";
    }

    public String show() {
        return "show";
    }

    public String edit() {
        return "edit";
    }
    
    
    public String editNew() {
        return "editNew";
    }
 
    public File getUserImage() {
        return userImage;
    }
 
    public void setUserImage(File userImage) {
        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) {
        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 setImageName(String imageName) {
                this.imageName=imageName;
        }
        
        public String getImageName() {
                return imageName;
        }
        
        public void setId(String id) {
        this.bannerName = id;
    }
        
        public String[] getMapLink() {
                return mapLink;
        }
        public void setMapLink(String[] mapLink) {
                this.mapLink = mapLink;
        }
        public String[] getReturnQty() {
                return mapCoordinates;
        }
        public void setMapCoordinates(String[] mapCoordinates) {
                this.mapCoordinates = mapCoordinates;
        }
        
        public void setHasMap(String hasMap) {
                this.hasMap=hasMap;
        }
        
        public String getHasMap() {
                return hasMap;
        }
        
    
    @Override
    public void setServletRequest(HttpServletRequest servletRequest) {
        this.servletRequest = servletRequest;
 
    }
}