Subversion Repositories SmartDukaan

Rev

Rev 650 | Blame | Last modification | View Log | RSS feed

package in.shop2020.serving.controllers;

import in.shop2020.model.v1.user.Address;
import in.shop2020.model.v1.user.AddressType;
import in.shop2020.model.v1.user.UserContextService.Client;
import in.shop2020.serving.controllers.BaseController;
import in.shop2020.thrift.clients.UserContextServiceClient;

import java.util.*;

import org.apache.juli.logging.Log;
import org.apache.juli.logging.LogFactory;
import org.apache.struts2.convention.annotation.Result;
import org.apache.struts2.convention.annotation.Results;
import org.apache.struts2.interceptor.ParameterAware;
import org.apache.struts2.rest.DefaultHttpHeaders;
import org.apache.struts2.rest.HttpHeaders;

@Results({
    @Result(name="redirect", type="redirectAction", 
                params = {"actionName" , "address"}),
    @Result(name="login", type="redirectAction", 
                params = {"actionName" , "login"})
})
public class AddressController extends BaseController implements ParameterAware{
        
        private static final long serialVersionUID = 1L;
        private static Log log = LogFactory.getLog(AddressController.class);
        Map<String, String[]> reqparams = null;
        
        public AddressController(){
                super();
        }
        
         // GET /address
         public String index() {
                if(!userinfo.isLoggedIn()){
                        setRedirectUrl();
                        return "login";
                }
                htmlSnippets.put("SHIPPING_ADDRESS_HEADER",pageLoader.getShippingHeaderHtml());
                htmlSnippets.put("SHIPPING_ADDRESS_DETAILS",pageLoader.getShippingAddressDetailsHtml(userinfo.getUserId()));
                return "index";
         }

        // POST /address
        public String create(){
        printParams();

                if(userinfo.isLoggedIn()){
                        UserContextServiceClient userContextServiceClient;
                        try {
                                userContextServiceClient = new UserContextServiceClient();
                                Client userClient = userContextServiceClient.getClient();
                                
                                String action = this.request.getParameter("action");
                                String isDefault = this.request.getParameter("default");
                                
                                if(action != null){
                                        if(action.equals("add")){
                                                Address address = new Address();
                                                address.setName(this.request.getParameter("name"));
                                                address.setLine1(this.request.getParameter("line1"));
                                                address.setLine2(this.request.getParameter("line2"));
                                                address.setCity(this.request.getParameter("city"));
                                                address.setState(this.request.getParameter("state"));
                                                address.setPin(this.request.getParameter("pincode"));
                                                address.setPhone(this.request.getParameter("phone"));
                                                address.setCountry(this.request.getParameter("country"));
                                                address.setEnabled(true);
                                                address.setType(AddressType.HOME);
                                                if(isDefault.equals("true")){
                                                        userClient.addAddressForUser(userinfo.getUserId(), address, true);
                                                        addActionMessage("Address added successfully.");
                                                }else{
                                                        userClient.addAddressForUser(userinfo.getUserId(), address, false);
                                                        addActionMessage("Address added successfully.");
                                                }
                                                return "redirect";
                                        }
                                        
                                        if(action.equals("delete")){
                                                Long addressId = Long.parseLong(this.request.getParameter("addressid"));
                                                userClient.removeAddressForUser(userinfo.getUserId(), addressId);
                                                addActionMessage("Address deleted successfully.");
                                                return "success";       
                                        }
                                        
                                        if(action.equals("setdefault")){
                                                Long addressId = Long.parseLong(this.request.getParameter("addressid"));
                                                userClient.setDefaultAddress(userinfo.getUserId(), addressId);
                                                addActionMessage("Address set default successfully.");
                                                return "success";       
                                        }
                                }
                                
                        } catch (Exception e) {
                                e.printStackTrace();
                                addActionError("Unable to update address.");
                                return"redirect";
                        }
                        
                        return "redirect";
                }else{
                        return "failure";
                }
                
                
        }

    public void printParams(){
        for(String param : reqparams.keySet()) {
                log.info("param name is " + param);
                log.info("param first is " + reqparams.get(param)[0]);
        }
        log.info(this.reqparams);
    }

        @Override
        public void setParameters(Map<String, String[]> reqmap) {
                log.info("setParameters:" + reqmap);
                
                this.reqparams = reqmap;
        }

    public String getShippingAddressHeaderSnippet(){
                return htmlSnippets.get("SHIPPING_ADDRESS_HEADER");
        }
        
        public String getShippingAddressDetailsSnippet(){
                return htmlSnippets.get("SHIPPING_ADDRESS_DETAILS");
        }
}