Subversion Repositories SmartDukaan

Rev

Rev 3339 | Rev 3397 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 3339 Rev 3390
Line 4... Line 4...
4
package in.shop2020.serving.controllers;
4
package in.shop2020.serving.controllers;
5
 
5
 
6
import in.shop2020.crm.Activity;
6
import in.shop2020.crm.Activity;
7
import in.shop2020.crm.ActivityType;
7
import in.shop2020.crm.ActivityType;
8
import in.shop2020.crm.Agent;
8
import in.shop2020.crm.Agent;
-
 
9
import in.shop2020.crm.SearchFilter;
9
import in.shop2020.crm.Ticket;
10
import in.shop2020.crm.Ticket;
10
import in.shop2020.crm.TicketCategory;
11
import in.shop2020.crm.TicketCategory;
11
import in.shop2020.crm.TicketPriority;
12
import in.shop2020.crm.TicketPriority;
12
import in.shop2020.crm.TicketStatus;
13
import in.shop2020.crm.TicketStatus;
13
import in.shop2020.model.v1.user.User;
14
import in.shop2020.model.v1.user.User;
14
import in.shop2020.model.v1.user.UserContextException;
15
import in.shop2020.model.v1.user.UserContextException;
-
 
16
import in.shop2020.serving.auth.CRMAuthorizingRealm;
-
 
17
import in.shop2020.thrift.clients.CRMClient;
-
 
18
import in.shop2020.thrift.clients.UserClient;
15
 
19
 
16
import java.util.ArrayList;
20
import java.util.ArrayList;
-
 
21
import java.util.Collections;
17
import java.util.List;
22
import java.util.List;
18
 
23
 
19
import org.apache.thrift.TException;
24
import org.apache.thrift.TException;
20
 
25
 
21
/**
26
/**
Line 37... Line 42...
37
    private String            category;
42
    private String            category;
38
    private String            orderId;
43
    private String            orderId;
39
 
44
 
40
    public String create() {
45
    public String create() {
41
        try {
46
        try {
42
            createServiceClients();
-
 
43
            long creatorId = crmServiceClient.getAgentByEmailId(
47
            long creatorId = CRMAuthorizingRealm.getAgent(currentAgentEmailId).getId();
44
                    currentAgentEmailId).getId();
-
 
45
            Ticket ticket = new Ticket();
48
            Ticket ticket = new Ticket();
46
            ticket.setDescription(description);
49
            ticket.setDescription(description);
47
            ticket.setCreatorId(creatorId);
50
            ticket.setCreatorId(creatorId);
48
            ticket.setStatus(TicketStatus.OPEN);
51
            ticket.setStatus(TicketStatus.OPEN);
49
            ticket.setPriority(TicketPriority.valueOf(priority));
52
            ticket.setPriority(TicketPriority.valueOf(priority));
Line 63... Line 66...
63
            if (orderId != null && !orderId.isEmpty()) {
66
            if (orderId != null && !orderId.isEmpty()) {
64
                ticket.setOrderId(Long.parseLong(orderId));
67
                ticket.setOrderId(Long.parseLong(orderId));
65
            }
68
            }
66
 
69
 
67
            if (userEmailId != null && !userEmailId.isEmpty()) {
70
            if (userEmailId != null && !userEmailId.isEmpty()) {
-
 
71
                User user = null;
-
 
72
                userContextServiceClient = new UserClient().getClient();
-
 
73
                try {
-
 
74
                    user = userContextServiceClient.getUserByEmail(userEmailId);
-
 
75
                } catch (UserContextException e) {
-
 
76
                    log.error("Could not fetch user for " + userEmailId, e);
-
 
77
                }
-
 
78
 
-
 
79
                if (user != null && user.getUserId() != -1) {
-
 
80
                    ticket.setCustomerId(user.getUserId());
-
 
81
                    activity.setCustomerId(user.getUserId());
-
 
82
                }
-
 
83
                else {
68
                ticket.setCustomerEmailId(userEmailId);
84
                    ticket.setCustomerEmailId(userEmailId);
-
 
85
                    activity.setCustomerEmailId(userEmailId);
-
 
86
                }
69
            }
87
            }
70
 
88
 
71
            // handling null values appropriately
89
            // handling null values appropriately
72
            if (assigneeEmailId != null && !assigneeEmailId.isEmpty()) {
90
            if (assigneeEmailId != null && !assigneeEmailId.isEmpty()) {
73
                long assigneeId = crmServiceClient.getAgentByEmailId(
91
                long assigneeId = CRMAuthorizingRealm.getAgent(assigneeEmailId).getId();
74
                        assigneeEmailId).getId();
-
 
75
                ticket.setAssigneeId(assigneeId);
92
                ticket.setAssigneeId(assigneeId);
76
                activity.setTicketAssigneeId(assigneeId);
93
                activity.setTicketAssigneeId(assigneeId);
77
            }
94
            }
78
 
95
 
-
 
96
            crmServiceClient         = new CRMClient().getClient();
79
            crmServiceClient.insertTicket(ticket, activity);
97
            crmServiceClient.insertTicket(ticket, activity);
80
        } catch (TException e) {
98
        } catch (TException e) {
81
            log.error("Error while creating ticket", e);
99
            log.error("Error while creating ticket", e);
82
            return EXCEPTION;
100
            return EXCEPTION;
83
        }
101
        }
Line 85... Line 103...
85
        return getMyOpenTickets();
103
        return getMyOpenTickets();
86
    }
104
    }
87
 
105
 
88
    public String getMyOpenTickets() {
106
    public String getMyOpenTickets() {
89
        try {
107
        try {
90
            createServiceClients();
-
 
91
            Agent agent = crmServiceClient
-
 
92
                    .getAgentByEmailId(currentAgentEmailId);
108
            Agent agent = CRMAuthorizingRealm.getAgent(currentAgentEmailId);
93
 
109
 
-
 
110
            SearchFilter searchFilter = new SearchFilter();
94
            for (Ticket ticket : crmServiceClient.getAssignedTickets(agent
111
            searchFilter.setTicketAssigneeIds(Collections.singletonList(agent.getId()));
95
                    .getId())) {
112
            crmServiceClient         = new CRMClient().getClient();
-
 
113
            for (Ticket ticket : crmServiceClient.getTickets(searchFilter)) {
96
                if (TicketStatus.OPEN.equals(ticket.getStatus())) {
114
                if (TicketStatus.OPEN.equals(ticket.getStatus())) {
97
                    tickets.add(ticket);
115
                    tickets.add(ticket);
98
                }
116
                }
99
            }
117
            }
100
        } catch (TException e) {
118
        } catch (TException e) {
Line 107... Line 125...
107
        return INDEX;
125
        return INDEX;
108
    }
126
    }
109
 
127
 
110
    public String getMyTickets() {
128
    public String getMyTickets() {
111
        try {
129
        try {
112
            createServiceClients();
130
            Agent agent = CRMAuthorizingRealm.getAgent(currentAgentEmailId);
-
 
131
 
113
            Agent agent = crmServiceClient
132
            SearchFilter searchFilter = new SearchFilter();
-
 
133
            searchFilter.setTicketAssigneeIds(Collections.singletonList(agent.getId()));
114
                    .getAgentByEmailId(currentAgentEmailId);
134
            crmServiceClient         = new CRMClient().getClient();
115
            tickets = crmServiceClient.getAssignedTickets(agent.getId());
135
            tickets = crmServiceClient.getTickets(searchFilter);
116
        } catch (TException e) {
136
        } catch (TException e) {
117
            String errorString = "Error getting tickets for "
137
            String errorString = "Error getting tickets for "
118
                    + currentAgentEmailId;
138
                    + currentAgentEmailId;
119
            log.error(errorString, e);
139
            log.error(errorString, e);
120
            addActionError(errorString);
140
            addActionError(errorString);
Line 123... Line 143...
123
        return INDEX;
143
        return INDEX;
124
    }
144
    }
125
 
145
 
126
    public String getUnassignedTickets() {
146
    public String getUnassignedTickets() {
127
        try {
147
        try {
128
            createServiceClients();
148
            crmServiceClient         = new CRMClient().getClient();
129
            tickets = crmServiceClient.getUnassignedTickets();
149
            tickets = crmServiceClient.getUnassignedTickets();
130
        } catch (TException e) {
150
        } catch (TException e) {
131
            String errorString = "Error getting tickets for "
151
            String errorString = "Error getting tickets for "
132
                    + currentAgentEmailId;
152
                    + currentAgentEmailId;
133
            log.error(errorString, e);
153
            log.error(errorString, e);
Line 137... Line 157...
137
        return INDEX;
157
        return INDEX;
138
    }
158
    }
139
 
159
 
140
    public String getAllTickets() {
160
    public String getAllTickets() {
141
        try {
161
        try {
142
            createServiceClients();
162
            SearchFilter searchFilter = new SearchFilter();
143
            Agent agent = crmServiceClient
163
            searchFilter.setTicketAssigneeIds(Collections.singletonList(CRMAuthorizingRealm.getAgent(currentAgentEmailId).getId()));
144
                    .getAgentByEmailId(currentAgentEmailId);
164
            crmServiceClient         = new CRMClient().getClient();
145
            tickets = crmServiceClient.getAllTickets(agent.getId());
165
            tickets = crmServiceClient.getTickets(searchFilter);
146
        } catch (TException e) {
166
        } catch (TException e) {
147
            String errorString = "Error getting tickets for "
167
            String errorString = "Error getting tickets for "
148
                    + currentAgentEmailId;
168
                    + currentAgentEmailId;
149
            log.error(errorString, e);
169
            log.error(errorString, e);
150
            addActionError(errorString);
170
            addActionError(errorString);
Line 153... Line 173...
153
        return INDEX;
173
        return INDEX;
154
    }
174
    }
155
 
175
 
156
    public String getAllOpenTickets() {
176
    public String getAllOpenTickets() {
157
        try {
177
        try {
158
            createServiceClients();
178
            SearchFilter searchFilter = new SearchFilter();
159
            Agent agent = crmServiceClient
179
            searchFilter.setTicketAssigneeIds(Collections.singletonList(CRMAuthorizingRealm.getAgent(currentAgentEmailId).getId()));
160
                    .getAgentByEmailId(currentAgentEmailId);
180
            crmServiceClient          = new CRMClient().getClient();
161
            for (Ticket ticket : crmServiceClient.getAllTickets(agent.getId())) {
181
            for (Ticket ticket : crmServiceClient.getTickets(searchFilter)) {
162
                if (TicketStatus.OPEN.equals(ticket.getStatus())) {
182
                if (TicketStatus.OPEN.equals(ticket.getStatus())) {
163
                    tickets.add(ticket);
183
                    tickets.add(ticket);
164
                }
184
                }
165
            }
185
            }
166
        } catch (TException e) {
186
        } catch (TException e) {
Line 175... Line 195...
175
 
195
 
176
    public User getUser(Long userId) {
196
    public User getUser(Long userId) {
177
        User user = null;
197
        User user = null;
178
 
198
 
179
        try {
199
        try {
180
            createServiceClients();
200
            userContextServiceClient = new UserClient().getClient();
181
            user = userContextServiceClient.getUserById(userId);
201
            user = userContextServiceClient.getUserById(userId);
182
        } catch (UserContextException e) {
202
        } catch (UserContextException e) {
183
            String errorString = "Could not fetch user for " + userId;
203
            String errorString = "Could not fetch user for " + userId;
184
            log.error(errorString, e);
204
            log.error(errorString, e);
185
            addActionError(errorString);
205
            addActionError(errorString);
Line 190... Line 210...
190
        }
210
        }
191
 
211
 
192
        return user;
212
        return user;
193
    }
213
    }
194
 
214
 
195
    public Agent getAgent(long agentId) {
215
    public Agent getAgent(long agentId) throws TException {
196
        Agent agent = null;
-
 
197
 
-
 
198
        try {
-
 
199
            agent = crmServiceClient.getAgent(agentId);
216
        return CRMAuthorizingRealm.getAgent(agentId);
200
        } catch (TException e) {
-
 
201
            String errorString = "Could not get agent for " + agentId;
-
 
202
            log.error(errorString, e);
-
 
203
            addActionError(errorString);
-
 
204
        }
-
 
205
 
-
 
206
        return agent;
-
 
207
    }
217
    }
208
 
218
 
209
    public List<Agent> getAllAgents() {
219
    public List<Agent> getAllAgents() {
210
        List<Agent> agents = null;
-
 
211
 
-
 
212
        try {
-
 
213
            createServiceClients();
-
 
214
            agents = crmServiceClient.getAllAgents();
220
        return CRMAuthorizingRealm.getAgents();
215
        } catch (TException e) {
-
 
216
            String errorString = "Error while getting roles";
-
 
217
            log.error(errorString, e);
-
 
218
            addActionError(errorString);
-
 
219
        }
-
 
220
 
-
 
221
        return agents;
-
 
222
    }
221
    }
223
 
222
 
224
    public TicketCategory[] getTicketCategories() {
223
    public TicketCategory[] getTicketCategories() {
225
        return TicketCategory.values();
224
        return TicketCategory.values();
226
    }
225
    }