Subversion Repositories SmartDukaan

Rev

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

package in.shop2020.serving.controllers;

import java.util.ArrayList;
import java.util.List;

import in.shop2020.crm.Agent;
import in.shop2020.crm.SearchFilter;
import in.shop2020.serving.auth.CRMAuthorizingRealm;
import in.shop2020.thrift.clients.CRMClient;

import org.apache.shiro.crypto.hash.Sha256Hash;
import org.apache.thrift.TException;

public class AgentController extends BaseController {
        
        private List<Agent>  agents = new ArrayList<Agent>();
        private int id;
        private String name;
        private String emailId;
        private String password;
        private List<String> role;
        private String managerEmailId;
        private String newPassword;
        private int managerId;

        private static final long serialVersionUID = 7884813082235471597L;

        public AgentController()        {
                super();
        }
        
        public String index() {
                try {
                SearchFilter searchFilter = new SearchFilter();
                crmServiceClient = new CRMClient().getClient();
                agents = crmServiceClient.getAgents(searchFilter);
        } catch (TException e) {
            log.error("Error while getting agents", e);
        }
        return INDEX;
    }
        
        public String createAgent(){
                try{
                        Agent agent = new Agent();
                        agent.setName(name);
                        agent.setEmailId(emailId);
                        agent.setManagerId(managerId);  
                        agent.setPassword(new Sha256Hash(password).toHex());
                        agent.setIs_active(true);
                        crmServiceClient = new CRMClient().getClient();
                        crmServiceClient.insertAgent(agent,role);
                        SearchFilter searchfilter = new SearchFilter();
                        searchfilter.setAgentEmailId(emailId);
                        List<Agent> createdAgent = crmServiceClient.getAgents(searchfilter);
                        CRMAuthorizingRealm.addAgent(createdAgent.get(0));
                        log.info("Agent Creation complete");
                } catch (TException e) {
                        log.error("Error while creating agent", e);
                        return EXCEPTION;
                }
                return index();
        }


        public String changePassword(){
                try {
                        crmServiceClient = new CRMClient().getClient();
                        crmServiceClient.updatePasswordForAgent(emailId, new Sha256Hash(newPassword).toHex());
                } catch (TException e) {
                        log.error("Error while changing password of agent", e);
                        e.printStackTrace();
                        return EXCEPTION;
                }
                return index();
        }
        
        public String deActivateAgent(){
                try {
                        crmServiceClient = new CRMClient().getClient();
                        crmServiceClient.changeAgentStatus(false, emailId);
                        crmServiceClient.unassignAgentTickets(id);
                        CRMAuthorizingRealm.removeAgent(new Long((long)id), emailId);
                } catch (TException e) {
                        log.error("Error while deactivating agent", e);
                        e.printStackTrace();
                        return EXCEPTION; 
                }
                return index();
        }
        
        public String getName() {
                return name;
        }

        public void setName(String name) {
                this.name = name;
        }

        public String getPassword() {
                return password;
        }

        public void setPassword(String password) {
                this.password = password;
        }

        public List<String> getRole() {
                return role;
        }

        public void setRole(List<String> role) {
                this.role = role;
        }

        public String getEmailId() {
                return emailId;
        }
        
        public void setEmailId(String emailId) {
                this.emailId = emailId;
        }

        public String getNewPassword() {
                return newPassword;
        }

        public void setNewPassword(String newPassword) {
                this.newPassword = newPassword;
        }

        public List<Agent> getAgents() {
                return agents;
        }

        public void setAgents(List<Agent> agents) {
                this.agents = agents;
        }
        
        public String getManagerEmailId() {
                return managerEmailId;
        }

        public void setManagerEmailId(String managerEmailId) {
                this.managerEmailId = managerEmailId;
        }
        
        public int getManagerId() {
                return managerId;
        }

        
        public void setManagerId(int managerId) {
                this.managerId = managerId;
        }

        public int getId() {
                return id;
        }

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