当前位置: 首页>>代码示例>>Python>>正文


Python Database.createUserObj方法代码示例

本文整理汇总了Python中db.Database.createUserObj方法的典型用法代码示例。如果您正苦于以下问题:Python Database.createUserObj方法的具体用法?Python Database.createUserObj怎么用?Python Database.createUserObj使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在db.Database的用法示例。


在下文中一共展示了Database.createUserObj方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: post_new_vote

# 需要导入模块: from db import Database [as 别名]
# 或者: from db.Database import createUserObj [as 别名]
def post_new_vote(study_id):
    def incVotes(obj):
        # Keep obj updates for consistency
        if obj.get("votes"):
            obj["votes"] += 1
        Database.locations.update({"_id": obj["_id"]}, {"$inc": {"votes": 1}})
        Database.incQSVoteCount(study_id, str(obj.get("_id")))

    leftObj = Database.getLocation(request.form["left"])
    rightObj = Database.getLocation(request.form["right"])
    if leftObj is None or rightObj is None:
        return jsonifyResponse({"error": "Locations don't exist!"})
    map(incVotes, [leftObj, rightObj])
    newVoteObj = {
        "study_id": request.form["study_id"],
        "left": request.form["left"],
        "right": request.form["right"],
        "choice": request.form["choice"],
        "timestamp": datetime.now(),
    }
    # If there is no userObj, create one now
    if not session.get("userObj"):
        # Generate a random ID to associate votes with this user if one does not already exist
        session["voterID"] = session["voterID"] if session.get("voterID") else str(uuid4().hex)
        session["userObj"] = Database.createUserObj(session["voterID"])
    if session["userObj"].get("email"):
        newVoteObj["voter_email"] = session["userObj"]["email"]
    if session.get("voterID"):
        newVoteObj["voter_uniqueid"] = session["voterID"]
    # Insert vote into DB
    Database.votes.insert(newVoteObj)
    # Increment votes in DB
    Database.users.update({"_id": session["userObj"]["_id"]}, {"$inc": {"num_votes": 1}})
    # And in cookied object
    session["userObj"]["num_votes"] = session["userObj"]["num_votes"] + 1 if session["userObj"].get("num_votes") else 1
    # Did the user unlock anything?
    unlockedStudies = Gamification.unlockNew(session["userObj"])
    if len(unlockedStudies) > 0:
        Database.users.update(
            {"_id": session["userObj"]["_id"]},
            {
                "$pushAll": {"unlocked_studies": unlockedStudies},
                "$set": {"last_unlocked_at": session["userObj"]["num_votes"]},
            },
        )
        # Get user obj from database and update cookied object
        session["userObj"] = Database.getUserById(session["userObj"]["_id"])
    session.modified = True
    response = {"success": True}
    # Finally, if the user requested an update to their gamification status, send it
    if request.form.get("gamification_status"):
        response["gamificationStatus"] = Gamification.getUnlockStatus(session["userObj"])
    return jsonifyResponse(response)
开发者ID:nguyenist,项目名称:Place-Pulse,代码行数:55,代码来源:study.py

示例2: post_new_vote

# 需要导入模块: from db import Database [as 别名]
# 或者: from db.Database import createUserObj [as 别名]
def post_new_vote(study_id):
    if request.form['choice'] in ['left', 'equal']:
      winner_locid = request.form['left']
      loser_locid = request.form['right']
    else:
      winner_locid = request.form['right']
      loser_locid = request.form['left']
    isDraw = request.form['choice'] == 'equal'
    Database.updateQScores(study_id, winner_locid, loser_locid, isDraw)

    if not request.headers.getlist("X-Forwarded-For"):
       ip = request.remote_addr
    else:
       ip = request.headers.getlist("X-Forwarded-For")[0]

    newVoteObj = {
        'study_id' : request.form['study_id'],
        'left' : request.form['left'],
        'right' : request.form['right'],
        'choice' : request.form['choice'],
        'timestamp': datetime.now(),
        'ip': ip
    }
    # If there is no userObj, create one now
    if not session.get('userObj'):
        # Generate a random ID to associate votes with this user if one does not already exist
        session['voterID'] = session['voterID'] if session.get('voterID') else str(uuid4().hex)
        session['userObj'] = Database.createUserObj(session['voterID'])
    if session['userObj'].get('email'):
        newVoteObj['voter_email'] = session['userObj']['email']
    if session.get('voterID'):
        newVoteObj['voter_uniqueid'] = session['voterID']
    # Insert vote into DB
    Database.votes.insert(newVoteObj)
    # Increment votes in DB
    Database.users.update({
        '_id': session['userObj']['_id']
    },
    {
        '$inc': {
            'num_votes': 1
        }
    })
    # And in cookied object
    session['userObj']['num_votes'] = session['userObj']['num_votes']+1 if session['userObj'].get('num_votes') else 1
    session.modified = True
    response = {
        'success': True
    }
    return jsonifyResponse(response)
开发者ID:MacroConnections,项目名称:Place-Pulse,代码行数:52,代码来源:study.py

示例3: cookieUser

# 需要导入模块: from db import Database [as 别名]
# 或者: from db.Database import createUserObj [as 别名]
def cookieUser(email,extra_data=None):
    if extra_data is None:
        extra_data = dict()
    userObjData =  {
        'email':  email
    }
    userObjData.update(extra_data)
    def saveAndSet(_userObj):
        Database.users.save(_userObj)
        _userObj['_id'] = str(_userObj['_id'])
        session['userObj'] = _userObj
    # TODO: Find out why session['userObj'] sometimes persists after logout
    # if session.get('userObj'):
    #     print "session.get('userObj'):"
    #     userObjData.update(session['userObj'])
    #     saveAndSet(userObjData)
    #     #Database.createUserObj(email=email,voterID=session['userObj'].get('voter_uniqueid'),extra_data=extra_data)
    # else:
    # Look for existing userObjs for this e-mail or a user's voterID
    emailUserObj = Database.getUserByEmail(email)
    voterIDUserObj = Database.getUserByVoterID(session['voterID']) if session.get('voterID') else None
    emailUserObj['_id'] = str(emailUserObj['_id'])
    if voterIDUserObj:
        if emailUserObj:
            if emailUserObj.get('voter_uniqueid'):            
                session['userObj'] = emailUserObj
            else:
                emailUserObj['voter_uniqueid'] = session['voterID']
                saveAndSet(emailUserObj)
        else:
            voterIDUserObj['email'] = email
            saveAndSet(voterIDUserObj)
    elif emailUserObj:
        if not(emailUserObj.get('voter_uniqueid')) and session.get('voterID'):
           emailUserObj['voter_uniqueid'] = session.get('voterID')
           saveAndSet(emailUserObj)
        else:
            session['userObj'] = emailUserObj
    else:
        session['userObj'] = Database.createUserObj(voterID=session.get('voterID'),email=email,extra_data=extra_data)           
开发者ID:MacroConnections,项目名称:Place-Pulse,代码行数:42,代码来源:login.py


注:本文中的db.Database.createUserObj方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。