def markRead(self, value=True): from server.models.ssuser import SSUser db = core.connect(SSUser.messagesDb(self.toId)) if value: if not self.isRead(): db[Message.makeReadId(self.id, self.toId)] = { "type": "message-read", "msgId": self.id, "toId": self.toId, } else: del db[Message.makeReadId(self.id, self.toId)] core.replicate(SSUser.messagesDb(self.toId), "shiftspace/shared") return self
def create(cls, fromId, toId, title, text, meta="generic", content=None): from server.models.ssuser import SSUser db = core.connect(SSUser.messagesDb(toId)) json = { "fromId": fromId, "toId": toId, "title": text, "text": text, "meta": meta, "content": content or {} } newMessage = Message(**utils.clean(json)) newMessage.store(db) core.replicate(SSUser.messagesDb(toId), "shiftspace/shared") return newMessage
def read(cls, id, userId=None): db = core.connect("shiftspace/shared") theMessage = Message.load(db, id) if theMessage == None and userId: db = core.connect(SSUser.messagesDb(userId)) theMessage = Message.load(db, id) return Message.joinData(theMessage, userId)
def delete(self, id): db = core.connect(SSUser.messagesDb(self.toId)) del db[id]