本文整理汇总了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)
示例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)
示例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)