Пример #1
0
class HelpdeskXMLRPC(BrowserView):
    """
    """
    implements(IMessageHandler)
    
    def __init__(self, context, request):
        """ init view """
        self.context = context
        self.request = request
        settings =  getMultiAdapter((context,request),
            name="helpdesk_settings")
        self.rpcserver = Server('http://%s:%i' % 
            (settings.xmlrpc_host,settings.xmlrpc_port))
    
    def userLogin(self,botID,userID,name,subject):
        """
        """
        (result,agent)= self.rpcserver.userLogin(botID,userID,name,subject)
        if result:
            return agent
        raise Exception("No agent available")
    
    def userLogout(self,botID,userID):
        """
        """
        self.rpcserver.userLogout(botID,userID)
    
    def sendUserMessage(self,botID,userID,message):
        """
        """
        result= self.rpcserver.sendUserMessage(botID,userID,message)
        if not result:
            raise Exception("You have been disconnected")
    
    def getUserMessages(self,botID,userID):
        """
        """
        (result,messages,files) = self.rpcserver.getUserMessages(botID,userID)
        if result:
            return [messages,files]
        raise Exception("You have been disconnected")
    
    def getAliveAgents(self,botID,passhash):
        """
        """
        return self.rpcserver.getAliveContacts(botID,passhash)
    
    def getAvailableAgents(self,botID,passhash):
        """
        """
        return self.rpcserver.getAvailableContacts(botID,passhash)
    
    def getHelpdeskAgents(self,botJID,passhash):
        """
        """
        return self.rpcserver.getContacts(botJID,passhash)
    
    def getAgentAvatarB64(self,botID,userID):
        """
        """
        return self.rpcserver.getContactAvatarB64(botID,userID)
    
    def getAgentVCard(self,botID,userID):
        """
        """
        return self.rpcserver.getContactVCard(botID,userID)
    
    def getDiscussion(self,botJID,userID):
        """
        """
        return self.rpcserver.getDiscussion(botJID,userID)
    
    def loadBot(self,botID,botPass,persistent):
        """
        """
        return self.rpcserver.loadBot(botID,botPass,persistent)
    
    def addAgent(self,botJID,agentId,passhash):
        """
        """
        return self.rpcserver.addContact(botJID,agentId,passhash)
    
    def removeAgent(self,botJID,agentId,passhash):
        """
        """
        return self.rpcserver.delContact(botJID,agentId,passhash)