Subversion Repositories SmartDukaan

Rev

Rev 7162 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
4793 amar.kumar 1
package in.shop2020.serving.controllers;
2
 
3
import java.util.ArrayList;
4
import java.util.List;
5
 
6
import in.shop2020.crm.Agent;
7
import in.shop2020.crm.SearchFilter;
8
import in.shop2020.serving.auth.CRMAuthorizingRealm;
9
import in.shop2020.thrift.clients.CRMClient;
10
 
7058 kshitij.so 11
import org.apache.commons.lang.StringUtils;
4793 amar.kumar 12
import org.apache.shiro.crypto.hash.Sha256Hash;
13
import org.apache.thrift.TException;
5168 amar.kumar 14
import org.apache.thrift.transport.TTransportException;
4793 amar.kumar 15
 
16
public class AgentController extends BaseController {
17
 
5937 amar.kumar 18
	private static final String adminEmailId = "admin@shop2020.in";
19
 
4793 amar.kumar 20
	private List<Agent>  agents = new ArrayList<Agent>();
21
	private int id;
22
	private String name;
23
	private String emailId;
24
	private String password;
25
	private List<String> role;
26
	private String managerEmailId;
27
	private String newPassword;
28
	private int managerId;
16244 manish.sha 29
	private String pmCrmUser;
4793 amar.kumar 30
 
31
	private static final long serialVersionUID = 7884813082235471597L;
32
 
33
	public AgentController()	{
34
		super();
35
	}
36
 
37
	public String index() {
38
		try {
39
        	SearchFilter searchFilter = new SearchFilter();
40
        	crmServiceClient = new CRMClient().getClient();
41
        	agents = crmServiceClient.getAgents(searchFilter);
42
        } catch (TException e) {
43
            log.error("Error while getting agents", e);
44
        }
45
        return INDEX;
46
    }
47
 
48
	public String createAgent(){
49
		try{
50
			Agent agent = new Agent();
51
			agent.setName(name);
52
			agent.setEmailId(emailId);
53
			agent.setManagerId(managerId);  
54
			agent.setPassword(new Sha256Hash(password).toHex());
55
			agent.setIs_active(true);
16244 manish.sha 56
			if((pmCrmUser!=null && "on".equalsIgnoreCase(pmCrmUser)) || role.contains("PMAgent")){
57
				agent.setIs_pmCrmUser(true);
58
			}else{
59
				agent.setIs_pmCrmUser(false);
60
			}
61
			if(role.contains("Outbound")||role.contains("TeamLead")){
62
				agent.setIs_allAssignable(true);
63
			}else{
64
				agent.setIs_allAssignable(false);
65
			}
4793 amar.kumar 66
			crmServiceClient = new CRMClient().getClient();
67
			crmServiceClient.insertAgent(agent,role);
68
			SearchFilter searchfilter = new SearchFilter();
69
			searchfilter.setAgentEmailId(emailId);
70
			List<Agent> createdAgent = crmServiceClient.getAgents(searchfilter);
71
			CRMAuthorizingRealm.addAgent(createdAgent.get(0));
72
			log.info("Agent Creation complete");
73
		} catch (TException e) {
74
			log.error("Error while creating agent", e);
75
			return EXCEPTION;
76
		}
77
		return index();
78
	}
79
 
80
 
81
	public String changePassword(){
82
		try {
83
			crmServiceClient = new CRMClient().getClient();
84
			crmServiceClient.updatePasswordForAgent(emailId, new Sha256Hash(newPassword).toHex());
5286 amar.kumar 85
 
86
			// Dummy call to reload agents
87
	        CRMAuthorizingRealm.getAgent(-1);
4793 amar.kumar 88
		} catch (TException e) {
89
			log.error("Error while changing password of agent", e);
90
			e.printStackTrace();
91
			return EXCEPTION;
92
		}
93
		return index();
94
	}
95
 
96
	public String deActivateAgent(){
97
		try {
98
			crmServiceClient = new CRMClient().getClient();
99
			crmServiceClient.changeAgentStatus(false, emailId);
100
			crmServiceClient.unassignAgentTickets(id);
101
			CRMAuthorizingRealm.removeAgent(new Long((long)id), emailId);
102
		} catch (TException e) {
103
			log.error("Error while deactivating agent", e);
104
			e.printStackTrace();
105
			return EXCEPTION; 
106
		}
107
		return index();
108
	}
109
 
5168 amar.kumar 110
	public String changeAgentRole(){
111
		try{
112
			log.info("Agent id : "+id +" role : " + role);
113
			crmServiceClient = new CRMClient().getClient();
114
			crmServiceClient.changeAgentRole(new Long((long)id),role);
115
		} catch (Exception e) {
116
 
117
		}
118
		return index();
119
	}
120
 
121
	public String getOpenTicketCount(long id) {
122
		try {
123
			crmServiceClient = new CRMClient().getClient();
124
			return (new Integer(crmServiceClient.getOpenTicketCountForAgent(id))).toString();
125
		} catch (TTransportException e) {
126
			e.printStackTrace();
127
		} catch (TException e) {
128
			e.printStackTrace();
129
		}
130
		return "-1";
131
	}
132
 
7162 kshitij.so 133
	public List<String> getRoleForAgent(String emailId) throws TException{
134
		crmServiceClient = new CRMClient().getClient();
135
		return crmServiceClient.getRoleNamesForAgent(emailId);
136
	}
137
 
4793 amar.kumar 138
	public String getName() {
139
		return name;
140
	}
141
 
142
	public void setName(String name) {
143
		this.name = name;
144
	}
145
 
146
	public String getPassword() {
147
		return password;
148
	}
149
 
150
	public void setPassword(String password) {
151
		this.password = password;
152
	}
153
 
154
	public List<String> getRole() {
155
		return role;
156
	}
157
 
158
	public void setRole(List<String> role) {
159
		this.role = role;
160
	}
161
 
162
	public String getEmailId() {
163
		return emailId;
164
	}
165
 
166
	public void setEmailId(String emailId) {
167
		this.emailId = emailId;
168
	}
169
 
170
	public String getNewPassword() {
171
		return newPassword;
172
	}
173
 
174
	public void setNewPassword(String newPassword) {
175
		this.newPassword = newPassword;
176
	}
177
 
178
	public List<Agent> getAgents() {
5937 amar.kumar 179
		String currentEmailId = getCurrentAgentEmailId();
7058 kshitij.so 180
		log.info("currentEmailId="+currentEmailId);
181
		long managerId =0;
7065 kshitij.so 182
		boolean isManager=false;
5937 amar.kumar 183
		List<Agent> managedAgents = new ArrayList<Agent>();
184
		for(Agent tempAgent : agents) {
7058 kshitij.so 185
			if(StringUtils.equalsIgnoreCase(tempAgent.getEmailId(), currentEmailId)) {
5937 amar.kumar 186
				managerId = tempAgent.getId();
187
				break;
188
			}
189
		}
190
 
7058 kshitij.so 191
		if(currentEmailId.equals(adminEmailId)) {
5937 amar.kumar 192
			return agents;
193
		} else {
194
			if(managerId!=0) {
195
				for(Agent tempAgent : agents) {
196
					if(tempAgent.getManagerId() == managerId){
7065 kshitij.so 197
						isManager=true;
5937 amar.kumar 198
						managedAgents.add(tempAgent);
199
					}
200
				}
7065 kshitij.so 201
				if (isManager){
202
					for(Agent tempAgent : agents) {
203
						if(tempAgent.getId() == managerId){
204
							managedAgents.add(tempAgent);
205
						}
206
					}
207
				}
5937 amar.kumar 208
				return managedAgents;
209
			}
210
			else {
7058 kshitij.so 211
				return null;
5937 amar.kumar 212
			}
213
 
214
		}
215
 
4793 amar.kumar 216
	}
217
 
218
	public void setAgents(List<Agent> agents) {
219
		this.agents = agents;
220
	}
221
 
222
	public String getManagerEmailId() {
223
		return managerEmailId;
224
	}
225
 
226
	public void setManagerEmailId(String managerEmailId) {
227
		this.managerEmailId = managerEmailId;
228
	}
229
 
230
	public int getManagerId() {
231
		return managerId;
232
	}
233
 
234
 
235
	public void setManagerId(int managerId) {
236
		this.managerId = managerId;
237
	}
238
 
239
	public int getId() {
240
		return id;
241
	}
242
 
243
	public void setId(int id) {
244
		this.id = id;
245
	}
5286 amar.kumar 246
 
247
	public static void main(String args[]) throws TException {
248
		SearchFilter searchFilter = new SearchFilter();
249
		searchFilter.setAgentId(10);
250
		in.shop2020.crm.CRMService.Client crmServiceClient = new CRMClient().getClient();
251
    	List<Agent> agents = crmServiceClient.getAgents(searchFilter);
252
    	System.out.println(agents);
253
	}
16244 manish.sha 254
 
255
	public String getPmCrmUser() {
256
		return pmCrmUser;
257
	}
258
 
259
	public void setPmCrmUser(String pmCrmUser) {
260
		this.pmCrmUser = pmCrmUser;
261
	}
262
 
4793 amar.kumar 263
}