Subversion Repositories SmartDukaan

Rev

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

/**
 * 
 */
package in.shop2020.serving.controllers;

import in.shop2020.crm.Agent;
import in.shop2020.crm.Ticket;
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>();

    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<Ticket> getTickets() {
        return tickets;
    }

    public void setTickets(List<Ticket> tickets) {
        this.tickets = tickets;
    }
}