Rev 3269 | Rev 3397 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
/****/package in.shop2020.serving.controllers;import in.shop2020.crm.Activity;import in.shop2020.crm.ActivityType;import in.shop2020.crm.Agent;import in.shop2020.crm.Ticket;import in.shop2020.crm.TicketCategory;import in.shop2020.crm.TicketPriority;import in.shop2020.crm.TicketStatus;import in.shop2020.model.v1.user.User;import in.shop2020.model.v1.user.UserContextException;import java.util.ArrayList;import java.util.List;import org.apache.thrift.TException;/*** @author mandeep**/public class TicketsController extends BaseController {/****/private static final long serialVersionUID = 1L;List<Ticket> tickets = new ArrayList<Ticket>();private String userEmailId;private String description;private String assigneeEmailId;private String priority;private String category;private String orderId;public String create() {try {createServiceClients();long creatorId = crmServiceClient.getAgentByEmailId(currentAgentEmailId).getId();Ticket ticket = new Ticket();ticket.setDescription(description);ticket.setCreatorId(creatorId);ticket.setStatus(TicketStatus.OPEN);ticket.setPriority(TicketPriority.valueOf(priority));ticket.setCategory(TicketCategory.valueOf(category));Activity activity = new Activity();// At creation of ticket activity's description is same as that of// ticketactivity.setDescription("Creating Ticket");activity.setType(ActivityType.OTHER);activity.setTicketPriority(TicketPriority.valueOf(priority));activity.setTicketStatus(TicketStatus.OPEN);activity.setCreatorId(creatorId);activity.setTicketCategory(TicketCategory.valueOf(category));activity.setTicketDescription(description);if (orderId != null && !orderId.isEmpty()) {ticket.setOrderId(Long.parseLong(orderId));}if (userEmailId != null && !userEmailId.isEmpty()) {ticket.setCustomerEmailId(userEmailId);}// handling null values appropriatelyif (assigneeEmailId != null && !assigneeEmailId.isEmpty()) {long assigneeId = crmServiceClient.getAgentByEmailId(assigneeEmailId).getId();ticket.setAssigneeId(assigneeId);activity.setTicketAssigneeId(assigneeId);}crmServiceClient.insertTicket(ticket, activity);} catch (TException e) {log.error("Error while creating ticket", e);return EXCEPTION;}return getMyOpenTickets();}public String getMyOpenTickets() {try {createServiceClients();Agent agent = crmServiceClient.getAgentByEmailId(currentAgentEmailId);for (Ticket ticket : crmServiceClient.getAssignedTickets(agent.getId())) {if (TicketStatus.OPEN.equals(ticket.getStatus())) {tickets.add(ticket);}}} catch (TException e) {String errorString = "Error getting tickets for "+ currentAgentEmailId;log.error(errorString, e);addActionError(errorString);}return INDEX;}public String getMyTickets() {try {createServiceClients();Agent agent = crmServiceClient.getAgentByEmailId(currentAgentEmailId);tickets = crmServiceClient.getAssignedTickets(agent.getId());} catch (TException e) {String errorString = "Error getting tickets for "+ currentAgentEmailId;log.error(errorString, e);addActionError(errorString);}return INDEX;}public String getUnassignedTickets() {try {createServiceClients();tickets = crmServiceClient.getUnassignedTickets();} catch (TException e) {String errorString = "Error getting tickets for "+ currentAgentEmailId;log.error(errorString, e);addActionError(errorString);}return INDEX;}public String getAllTickets() {try {createServiceClients();Agent agent = crmServiceClient.getAgentByEmailId(currentAgentEmailId);tickets = crmServiceClient.getAllTickets(agent.getId());} catch (TException e) {String errorString = "Error getting tickets for "+ currentAgentEmailId;log.error(errorString, e);addActionError(errorString);}return INDEX;}public String getAllOpenTickets() {try {createServiceClients();Agent agent = crmServiceClient.getAgentByEmailId(currentAgentEmailId);for (Ticket ticket : crmServiceClient.getAllTickets(agent.getId())) {if (TicketStatus.OPEN.equals(ticket.getStatus())) {tickets.add(ticket);}}} catch (TException e) {String errorString = "Error getting tickets for "+ currentAgentEmailId;log.error(errorString, e);addActionError(errorString);}return INDEX;}public User getUser(Long userId) {User user = null;try {createServiceClients();user = userContextServiceClient.getUserById(userId);} catch (UserContextException e) {String errorString = "Could not fetch user for " + userId;log.error(errorString, e);addActionError(errorString);} catch (TException e) {String errorString = "Could not create client";log.error(errorString, e);addActionError(errorString);}return user;}public Agent getAgent(long agentId) {Agent agent = null;try {agent = crmServiceClient.getAgent(agentId);} catch (TException e) {String errorString = "Could not get agent for " + agentId;log.error(errorString, e);addActionError(errorString);}return agent;}public List<Agent> getAllAgents() {List<Agent> agents = null;try {createServiceClients();agents = crmServiceClient.getAllAgents();} catch (TException e) {String errorString = "Error while getting roles";log.error(errorString, e);addActionError(errorString);}return agents;}public TicketCategory[] getTicketCategories() {return TicketCategory.values();}public TicketPriority[] getTicketPriorities() {return TicketPriority.values();}public List<Ticket> getTickets() {return tickets;}public void setTickets(List<Ticket> tickets) {this.tickets = tickets;}public String getUserEmailId() {return userEmailId;}public void setUserEmailId(String userEmailId) {this.userEmailId = userEmailId;}public String getDescription() {return description;}public void setDescription(String description) {this.description = description;}public String getAssigneeEmailId() {return assigneeEmailId;}public void setAssigneeEmailId(String assigneeEmailId) {this.assigneeEmailId = assigneeEmailId;}public String getPriority() {return priority;}public void setPriority(String priority) {this.priority = priority;}public String getCategory() {return category;}public void setCategory(String category) {this.category = category;}public String getOrderId() {return orderId;}public void setOrderId(String orderId) {this.orderId = orderId;}}