Search in sources :

Example 36 with IQ

use of org.xmpp.packet.IQ in project Openfire by igniterealtime.

the class MacroProvider method sendItemNotFound.

private void sendItemNotFound(IQ packet, Workgroup workgroup) {
    IQ reply;
    reply = IQ.createResultIQ(packet);
    reply.setChildElement(packet.getChildElement().createCopy());
    reply.setError(new PacketError(PacketError.Condition.item_not_found));
    workgroup.send(reply);
}
Also used : IQ(org.xmpp.packet.IQ) PacketError(org.xmpp.packet.PacketError)

Example 37 with IQ

use of org.xmpp.packet.IQ in project Openfire by igniterealtime.

the class AgentHistory method executeGet.

public void executeGet(IQ packet, Workgroup workgroup) {
    IQ reply = IQ.createResultIQ(packet);
    try {
        if (workgroup.getAgentManager().getAgentSession(packet.getFrom()) == null) {
            reply = IQ.createResultIQ(packet);
            reply.setChildElement(packet.getChildElement().createCopy());
            reply.setError(new PacketError(PacketError.Condition.not_authorized));
            workgroup.send(reply);
            return;
        }
    } catch (AgentNotFoundException e) {
        reply = IQ.createResultIQ(packet);
        reply.setChildElement(packet.getChildElement().createCopy());
        reply.setError(new PacketError(PacketError.Condition.not_authorized));
        workgroup.send(reply);
        return;
    }
    // Create session list
    List<AgentHistoryModel> sessionList = new ArrayList<AgentHistoryModel>();
    Element chatSessions = reply.setChildElement("chat-sessions", "http://jivesoftware.com/protocol/workgroup");
    Element iq = packet.getChildElement();
    String agentJID = iq.attributeValue("agentJID");
    String ms = iq.attributeValue("maxSessions");
    String date = iq.attributeValue("startDate");
    long startTime = 0;
    if (date != null) {
        startTime = Long.parseLong(date);
    }
    int maxSessions = Integer.parseInt(ms);
    Connection con = null;
    PreparedStatement pstmt = null;
    try {
        con = DbConnectionManager.getConnection();
        pstmt = con.prepareStatement(GET_AGENT_SESSIONS);
        pstmt.setString(1, agentJID);
        ResultSet result = pstmt.executeQuery();
        while (result.next()) {
            String sessionID = result.getString(1);
            String joinTime = result.getString(2);
            String leftTime = result.getString(3);
            AgentHistoryModel model = new AgentHistoryModel();
            if (ModelUtil.hasLength(joinTime) && ModelUtil.hasLength(leftTime)) {
                try {
                    long start = Long.valueOf(joinTime);
                    long end = Long.valueOf(leftTime);
                    long totalTime = end - start;
                    model.setSessionID(sessionID);
                    model.setJoinTime(joinTime);
                    model.setDuration(Long.toString(totalTime));
                    if (start >= startTime) {
                        sessionList.add(model);
                    }
                } catch (NumberFormatException e) {
                    Log.error(e.getMessage(), e);
                }
            }
        }
        result.close();
    } catch (Exception ex) {
        Log.error(ex.getMessage(), ex);
    } finally {
        DbConnectionManager.closeConnection(pstmt, con);
    }
    buildAndSend(sessionList, chatSessions, reply, workgroup, maxSessions);
}
Also used : Element(org.dom4j.Element) IQ(org.xmpp.packet.IQ) ArrayList(java.util.ArrayList) Connection(java.sql.Connection) PacketError(org.xmpp.packet.PacketError) AgentNotFoundException(org.jivesoftware.xmpp.workgroup.AgentNotFoundException) PreparedStatement(java.sql.PreparedStatement) AgentNotFoundException(org.jivesoftware.xmpp.workgroup.AgentNotFoundException) ResultSet(java.sql.ResultSet)

Example 38 with IQ

use of org.xmpp.packet.IQ in project Openfire by igniterealtime.

the class ChatMetadataProvider method executeGet.

public void executeGet(IQ packet, Workgroup workgroup) {
    IQ reply = IQ.createResultIQ(packet);
    try {
        AgentSession agentSession = workgroup.getAgentManager().getAgentSession(packet.getFrom());
        if (agentSession == null) {
            reply = IQ.createResultIQ(packet);
            reply.setChildElement(packet.getChildElement().createCopy());
            reply.setError(new PacketError(PacketError.Condition.not_authorized));
            workgroup.send(reply);
            return;
        }
    } catch (AgentNotFoundException e) {
        reply = IQ.createResultIQ(packet);
        reply.setChildElement(packet.getChildElement().createCopy());
        reply.setError(new PacketError(PacketError.Condition.not_authorized));
        workgroup.send(reply);
        return;
    }
    Element chatSessions = reply.setChildElement("chat-metadata", "http://jivesoftware.com/protocol/workgroup");
    Element iq = packet.getChildElement();
    String sessionID = iq.element("sessionID").getTextTrim();
    Connection con = null;
    PreparedStatement pstmt = null;
    ResultSet rs = null;
    Map<String, String> map = new HashMap<String, String>();
    try {
        con = DbConnectionManager.getConnection();
        pstmt = con.prepareStatement(GET_SESSION_METADATA);
        pstmt.setString(1, sessionID);
        rs = pstmt.executeQuery();
        while (rs.next()) {
            String name = rs.getString(1);
            String value = rs.getString(2);
            map.put(name, value);
        }
    } catch (Exception ex) {
        Log.error(ex.getMessage(), ex);
    } finally {
        DbConnectionManager.closeConnection(rs, pstmt, con);
    }
    // Add metadata
    chatSessions.add(getMetaDataElement(map));
    workgroup.send(reply);
}
Also used : AgentSession(org.jivesoftware.xmpp.workgroup.AgentSession) HashMap(java.util.HashMap) Element(org.dom4j.Element) IQ(org.xmpp.packet.IQ) Connection(java.sql.Connection) ResultSet(java.sql.ResultSet) PacketError(org.xmpp.packet.PacketError) AgentNotFoundException(org.jivesoftware.xmpp.workgroup.AgentNotFoundException) PreparedStatement(java.sql.PreparedStatement) AgentNotFoundException(org.jivesoftware.xmpp.workgroup.AgentNotFoundException)

Example 39 with IQ

use of org.xmpp.packet.IQ in project Openfire by igniterealtime.

the class ChatNotes method executeSet.

public void executeSet(IQ packet, Workgroup workgroup) {
    IQ reply;
    Element iq = packet.getChildElement();
    try {
        // Verify that an agent is requesting this information.
        AgentSession agentSession = workgroup.getAgentManager().getAgentSession(packet.getFrom());
        if (agentSession != null) {
            String sessionID = iq.element("sessionID").getTextTrim();
            Element notes = iq.element("notes");
            String noteText = notes.getTextTrim();
            appendNote(sessionID, noteText);
            reply = IQ.createResultIQ(packet);
        } else {
            reply = IQ.createResultIQ(packet);
            reply.setChildElement(packet.getChildElement().createCopy());
            reply.setError(new PacketError(PacketError.Condition.item_not_found));
        }
    } catch (AgentNotFoundException e) {
        reply = IQ.createResultIQ(packet);
        reply.setChildElement(packet.getChildElement().createCopy());
        reply.setError(new PacketError(PacketError.Condition.item_not_found));
    }
    workgroup.send(reply);
}
Also used : AgentSession(org.jivesoftware.xmpp.workgroup.AgentSession) Element(org.dom4j.Element) IQ(org.xmpp.packet.IQ) PacketError(org.xmpp.packet.PacketError) AgentNotFoundException(org.jivesoftware.xmpp.workgroup.AgentNotFoundException)

Example 40 with IQ

use of org.xmpp.packet.IQ in project Openfire by igniterealtime.

the class SiteTracker method handleUserHistoryRequest.

private void handleUserHistoryRequest(IQ packet, Workgroup workgroup) {
    IQ reply;
    Element iq = packet.getChildElement();
    try {
        AgentSession agentSession = workgroup.getAgentManager().getAgentSession(packet.getFrom());
        if (agentSession == null) {
            reply = IQ.createResultIQ(packet);
            reply.setChildElement(packet.getChildElement().createCopy());
            reply.setError(new PacketError(PacketError.Condition.not_authorized));
            workgroup.send(reply);
            return;
        }
    } catch (AgentNotFoundException e) {
        reply = IQ.createResultIQ(packet);
        reply.setChildElement(packet.getChildElement().createCopy());
        reply.setError(new PacketError(PacketError.Condition.not_authorized));
        workgroup.send(reply);
        return;
    }
    // Define default values
    String sessionID = iq.attribute("sessionID").getText();
    reply = IQ.createResultIQ(packet);
    Element views = reply.setChildElement("site-user-history", "http://jivesoftware.com/protocol/workgroup");
    views.addAttribute("sessionID", sessionID);
    SiteUser siteUser = siteUsers.get(sessionID);
    if (siteUser != null) {
        for (PageView view : siteUser.getViews()) {
            Element pageView = views.addElement("page-view");
            pageView.addElement("title").setText(view.getTitle());
            pageView.addElement("url").setText(view.getUrl());
            pageView.addElement("time").setText(Long.toString(view.getTimeViewed()));
        }
        workgroup.send(reply);
    }
}
Also used : AgentSession(org.jivesoftware.xmpp.workgroup.AgentSession) Element(org.dom4j.Element) IQ(org.xmpp.packet.IQ) PacketError(org.xmpp.packet.PacketError) AgentNotFoundException(org.jivesoftware.xmpp.workgroup.AgentNotFoundException)

Aggregations

IQ (org.xmpp.packet.IQ)208 Element (org.dom4j.Element)141 JID (org.xmpp.packet.JID)49 PacketError (org.xmpp.packet.PacketError)35 Presence (org.xmpp.packet.Presence)19 UserNotFoundException (org.jivesoftware.openfire.user.UserNotFoundException)18 Message (org.xmpp.packet.Message)17 UnauthorizedException (org.jivesoftware.openfire.auth.UnauthorizedException)16 ClientSession (org.jivesoftware.openfire.session.ClientSession)14 DataForm (org.xmpp.forms.DataForm)13 ArrayList (java.util.ArrayList)11 AgentNotFoundException (org.jivesoftware.xmpp.workgroup.AgentNotFoundException)10 Packet (org.xmpp.packet.Packet)10 PacketException (org.jivesoftware.openfire.PacketException)9 User (org.jivesoftware.openfire.user.User)8 List (java.util.List)7 PrivacyList (org.jivesoftware.openfire.privacy.PrivacyList)7 Iterator (java.util.Iterator)6 Test (org.junit.Test)6 FormField (org.xmpp.forms.FormField)6