Subversion Repositories SmartDukaan

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
507 rajveer 1
package in.shop2020.serving.controllers;
2
 
3
import in.shop2020.model.v1.user.Address;
4
import in.shop2020.model.v1.user.AddressType;
5
import in.shop2020.model.v1.user.UserContextService.Client;
6
import in.shop2020.serving.controllers.BaseController;
7
import in.shop2020.thrift.clients.UserContextServiceClient;
8
 
9
import java.util.*;
10
 
11
import org.apache.juli.logging.Log;
12
import org.apache.juli.logging.LogFactory;
13
import org.apache.struts2.convention.annotation.Result;
14
import org.apache.struts2.convention.annotation.Results;
15
import org.apache.struts2.interceptor.ParameterAware;
16
import org.apache.struts2.rest.DefaultHttpHeaders;
17
import org.apache.struts2.rest.HttpHeaders;
18
 
595 rajveer 19
@Results({
20
    @Result(name="redirect", type="redirectAction", 
650 rajveer 21
    		params = {"actionName" , "address"}),
22
    @Result(name="login", type="redirectAction", 
23
       		params = {"actionName" , "login"})
595 rajveer 24
})
507 rajveer 25
public class AddressController extends BaseController implements ParameterAware{
26
 
27
	private static final long serialVersionUID = 1L;
28
	private static Log log = LogFactory.getLog(AddressController.class);
29
	Map<String, String[]> reqparams = null;
30
 
31
	public AddressController(){
32
		super();
33
	}
34
 
35
	 // GET /address
650 rajveer 36
	 public String index() {
37
		if(!userinfo.isLoggedIn()){
38
			setRedirectUrl();
39
			return "login";
40
		}
768 rajveer 41
		htmlSnippets.put("MYACCOUNT_HEADER",pageLoader.getMyaccountHeaderHtml());
650 rajveer 42
		htmlSnippets.put("SHIPPING_ADDRESS_DETAILS",pageLoader.getShippingAddressDetailsHtml(userinfo.getUserId()));
43
		return "index";
507 rajveer 44
	 }
45
 
46
	// POST /address
650 rajveer 47
	public String create(){
507 rajveer 48
    	printParams();
49
 
50
		if(userinfo.isLoggedIn()){
51
			UserContextServiceClient userContextServiceClient;
52
			try {
53
				userContextServiceClient = new UserContextServiceClient();
54
				Client userClient = userContextServiceClient.getClient();
55
 
517 rajveer 56
				String action = this.request.getParameter("action");
57
				String isDefault = this.request.getParameter("default");
58
 
59
				if(action != null){
60
					if(action.equals("add")){
61
						Address address = new Address();
595 rajveer 62
						address.setName(this.request.getParameter("name"));
517 rajveer 63
						address.setLine1(this.request.getParameter("line1"));
64
						address.setLine2(this.request.getParameter("line2"));
65
						address.setCity(this.request.getParameter("city"));
66
						address.setState(this.request.getParameter("state"));
67
						address.setPin(this.request.getParameter("pincode"));
595 rajveer 68
						address.setPhone(this.request.getParameter("phone"));
517 rajveer 69
						address.setCountry(this.request.getParameter("country"));
70
						address.setEnabled(true);
595 rajveer 71
						address.setType(AddressType.HOME);
517 rajveer 72
						if(isDefault.equals("true")){
569 rajveer 73
							userClient.addAddressForUser(userinfo.getUserId(), address, true);
793 rajveer 74
							userinfo.setPincode(this.request.getParameter("pincode"));
595 rajveer 75
							addActionMessage("Address added successfully.");
517 rajveer 76
						}else{
569 rajveer 77
							userClient.addAddressForUser(userinfo.getUserId(), address, false);
595 rajveer 78
							addActionMessage("Address added successfully.");
517 rajveer 79
						}
650 rajveer 80
						return "redirect";
517 rajveer 81
					}
507 rajveer 82
 
517 rajveer 83
					if(action.equals("delete")){
84
						Long addressId = Long.parseLong(this.request.getParameter("addressid"));
85
						userClient.removeAddressForUser(userinfo.getUserId(), addressId);
595 rajveer 86
						addActionMessage("Address deleted successfully.");
650 rajveer 87
						return "success";	
517 rajveer 88
					}
89
 
90
					if(action.equals("setdefault")){
91
						Long addressId = Long.parseLong(this.request.getParameter("addressid"));
92
						userClient.setDefaultAddress(userinfo.getUserId(), addressId);
793 rajveer 93
						//FIXME update pincode
595 rajveer 94
						addActionMessage("Address set default successfully.");
650 rajveer 95
						return "success";	
517 rajveer 96
					}
507 rajveer 97
				}
595 rajveer 98
 
507 rajveer 99
			} catch (Exception e) {
100
				e.printStackTrace();
595 rajveer 101
				addActionError("Unable to update address.");
650 rajveer 102
				return"redirect";
507 rajveer 103
			}
104
 
650 rajveer 105
			return "redirect";
507 rajveer 106
		}else{
650 rajveer 107
			return "failure";
507 rajveer 108
		}
109
 
595 rajveer 110
 
507 rajveer 111
	}
112
 
113
    public void printParams(){
114
    	for(String param : reqparams.keySet()) {
115
    		log.info("param name is " + param);
116
    		log.info("param first is " + reqparams.get(param)[0]);
117
    	}
118
    	log.info(this.reqparams);
119
    }
120
 
121
	@Override
122
	public void setParameters(Map<String, String[]> reqmap) {
123
		log.info("setParameters:" + reqmap);
124
 
125
		this.reqparams = reqmap;
126
	}
127
 
768 rajveer 128
	public String getMyaccountHeaderSnippet(){
129
		return htmlSnippets.get("MYACCOUNT_HEADER");
507 rajveer 130
	}
131
 
132
	public String getShippingAddressDetailsSnippet(){
133
		return htmlSnippets.get("SHIPPING_ADDRESS_DETAILS");
134
	}
135
}