Subversion Repositories SmartDukaan

Rev

Rev 3499 | Rev 11890 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

package in.shop2020.serving.controllers;

import in.shop2020.model.v1.user.Address;
import in.shop2020.model.v1.user.User;
import in.shop2020.thrift.clients.UserClient;

import java.util.List;

import org.apache.log4j.Logger;
import org.apache.shiro.SecurityUtils;

/**
 * @author vikas
 *
 */
@SuppressWarnings("serial")
public class UserInfoController extends BaseController {
    private static Logger log = Logger.getLogger(Class.class);
    private String id;
    private long userId;
    private User user;
    private List<Address> userAddresses;
    private Address primaryAdddress;
    private String trustLevelDelta;

    public String index() throws Exception {
        UserClient userServiceClient = new UserClient();
        in.shop2020.model.v1.user.UserContextService.Client userClient = userServiceClient.getClient();
        user = userClient.getUserById(userId);
        userAddresses = user.getAddresses();
        primaryAdddress = userClient.getAddressById(user.getDefaultAddressId());
        return INDEX;
    }

    public String update() throws Exception {
        userId = Long.parseLong(id);
        userContextServiceClient = new UserClient().getClient();
        userContextServiceClient.increaseTrustLevel(userId, Double.parseDouble(trustLevelDelta));
        return index();
    }

    public void setUserId(String userId) {
        try {
            this.userId = Long.parseLong(userId);
        }
        catch (NumberFormatException e) {
            log.error(e);
        }
    }

    public boolean isTrustLevelEditable() {
        return SecurityUtils.getSubject().hasRole("TeamLead") && SecurityUtils.getSubject().hasRole("Outbound");
    }

    public Long getUserId() {
        return userId;
    }
    
    public User getUser() {
        return user;
    }

    public List<Address> getUserAddresses() {
        return userAddresses;
    }

    public Address getPrimaryAdddress() {
        return primaryAdddress;
    }

    public String getTrustLevelDelta() {
        return trustLevelDelta;
    }

    public void setTrustLevelDelta(String trustLevelDelta) {
        this.trustLevelDelta = trustLevelDelta;
    }

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }
}