示例#1
0
文件: rel.py 项目: theriex/membic
def add_relationship(rel):
    # this condition is already tested for, but is so bad if it happens
    # that there is an extra check here just in case.
    if rel.originid == rel.relatedid:
        return [ ]
    origin = PenName.get_by_id(rel.originid)  #intransaction
    if not origin:
        logging.warn("add_relationship origin pen not found: " +\
                         str(rel.originid))
        return [ ]
    related = PenName.get_by_id(rel.relatedid)  #intransaction
    if not related:
        logging.warn("add_relationship related pen not found: " +\
                         str(rel.relatedid))
        return [ ]
    if not origin.following:
        origin.following = 0
    if not related.followers:
        related.followers = 0
    origin.following += 1
    related.followers += 1
    cached_put(origin)
    cached_put(related)
    cached_put(rel)
    return [ origin, related, rel ]
示例#2
0
文件: rel.py 项目: theriex/membic
def delete_relationship(rel):
    origin = PenName.get_by_id(rel.originid)  #intransaction
    origin.following -= 1
    related = PenName.get_by_id(rel.relatedid)  #intransaction
    related.followers -= 1
    cached_put(origin)
    cached_put(related)
    cached_delete(rel.key().id(), Relationship)
    return [ origin, related ]