Exemple #1
0
    def dbcall():
        with dispatcher.node.db.open_session() as sess:
            q = sess.query(func.count("*")).select_from(DmailTag).filter(DmailTag.name == tag_name)

            if q.scalar():
                return False

            tag = DmailTag()
            tag.name = tag_name

            sess.add(tag)

            sess.commit()

            return True
Exemple #2
0
    def dbcall():
        with handler.node.db.open_session() as sess:
            handler.node.db.lock_table(sess, DmailMessage)

            q = sess.query(func.count("*"))\
                .filter(DmailMessage.data_key == dmail_key)

            if q.scalar():
                return False

            q = sess.query(DmailAddress.id)\
                .filter(DmailAddress.site_key == dmail_addr)

            dmail_address = q.first()

            msg = DmailMessage()
            msg.dmail_address_id = dmail_address.id
            msg.data_key = dmail_key
            msg.sender_dmail_key =\
                enc.generate_ID(dmailobj.sender_pubkey)\
                    if dmailobj.sender_pubkey else None
            msg.sender_valid = valid_sig
            msg.subject = dmailobj.subject
            msg.date = mutil.parse_iso_datetime(dmailobj.date)

            msg.hidden = False
            msg.read = False

            tag = DmailTag()
            tag.name = "Inbox"
            msg.tags = [tag]

            msg.parts = []

            for part in dmailobj.parts:
                dbpart = DmailPart()
                dbpart.mime_type = part.mime_type
                dbpart.data = part.data
                msg.parts.append(dbpart)

            sess.add(msg)

            sess.commit()