def list_threads(self, uid):
     ret = []
     mthreads = chatDBManager.list_mthreads(uid)
     for mthread in mthreads:
         thread = chatutil.obj2dic(chatDBManager.get_thread(mthread.threadID))
         thread['updated'] = time.strftime("%m/%d/%Y %I:%M %p",time.localtime(thread['updated'])) 
         ret.append(thread)
     ret.sort(cmp = lambda x,y : cmp(y, x), key = lambda x: x["updated"])
     return ret
 def list_users(self, userid):
     ulist = chatDBManager.list_users()
     ret = []
     for uobj in ulist:
         if uobj.id == userid:
             pass
         else:
             user_dict =chatutil.obj2dic(uobj) 
             del user_dict["password"]
             ret.append(user_dict)
     return ret
    def list_thread_messages(self, threadid):
        ret = {"updated": 0, "messages": [], "description" : ''}
        mthread, messages = chatDBManager.get_mthread_messages(threadid)
        ret["updated"] = mthread.updated
        ret["description"] = mthread.description
        messages = list(messages)
        messages.sort(key = lambda x: x.mtime)

        for message in messages:
            msg_dict = chatutil.obj2dic(message)
            msg_dict['mtime'] = time.strftime("%m/%d/%Y %I:%M %p",time.localtime(msg_dict['mtime']))
            msg_dict['from'] =  message.mfrom.name
            ret["messages"].append(msg_dict)
        return ret
 def authenticate(self, username, password):
     ret = {"status": 1, "error": "", "user": {}}
     try:
         error = None
         user_obj = chatDBManager.get_user(username)
         authenticated = user_obj.authenticate(password)
         user_dict = chatutil.obj2dic(user_obj)
         del user_dict["password"]
         ret["user"] = user_dict
         if not authenticated:
             ret["status"] = 0
             ret["error"] = "invalid password"
     except SQLObjectNotFound:
         ret["status"] = 0
         ret["error"] = "invalid username"
     except Exception, fault:
         ret["status"] = 0
         ret["error"] = str(fault)
 def create_user(self, params):
     rc = chatutil.obj2dic(chatDBManager.create_user(params))
     del rc["password"]
     return rc