def post(self): json_data = request.get_json(force=True) if not json_data: return { 'status': 'fail', 'data': { 'message': 'No data provided' } }, 400 # Validate and deserialize input data, errors = friend_schema.load(json_data, partial=True) if errors: return errors, 422 user = User.query.filter_by(id=data['user_id']).first() if not user: return { 'status': 'fail', 'data': { 'message': 'A user with that is not found' } } friend = Friend( user_id=json_data['user_id'], name=json_data['name'], age=json_data['age'] ) db.session.add(friend) db.session.commit() result = friend_schema.dump(friend).data return { 'status': "success", 'data': result }, 201
def update_friend_status(user_id, friend_user_id, status): friends = db.session.query(Friend).all() friend_return = None friend_user_id = int(friend_user_id) for friend in friends: if (friend.friend_user_id == user_id) and (friend.user_id == friend_user_id) or ( friend.user_id == user_id) and (friend.friend_user_id == friend_user_id): print(user_id, friend.user_id, friend.friend_user_id, "inside loop") if status == "accepted": friend.friend_status = status friend_return = friend db.session.add(friend_return) break else: friend_return = "delete" db.session.delete(friend) break if friend_return is None: friend_return = Friend(user_id=user_id, friend_user_id=friend_user_id, friend_status=status) db.session.add(friend_return) db.session.commit() return friend_return
def add_friend_post(): """Adds friend relationship to the database""" friend_email = request.form['friend'] friend_user = User.query.filter_by(email=friend_email).first() friend_relationship = Friend(user_id=session['user_id'], friend_id=friend_user.user_id) friend_relationship2 = Friend(user_id=friend_user.user_id, friend_id=session['user_id']) db.session.add(friend_relationship) db.session.add(friend_relationship2) db.session.commit() return "Added {} as a friend".format(friend_user.fname)
def create_friend(user, friend): """ Adds a friend""" added_friend = Friend(user_id=user.id, friend_user_id=friend.id) db.session.add(added_friend) db.session.commit() return added_friend
def add_this_friend(friend_id): """Processes add friend request from friend profile page.""" # user = User.query.get(friend_id) friend = Friend(user_id=session['user_id'], friend_id=friend_id) friend_rev = Friend(user_id=friend_id, friend_id=session['user_id']) db.session.add(friend, friend_rev) db.session.commit() flash('Thanks for adding me. Share your faves with me!', 'info') return redirect('/user-friends')
def add_friend(): """Processes add friend request.""" friend_email = request.form.get('friend-email') friend = User.query.filter_by(email=friend_email).first() if not friend: # TO DO: Use third party API like MailChimp/Mandrill to generate registration # friend request email invite = Invite(user_id=session['user_id'], friend_email=friend_email) db.session.add(invite) db.session.commit() friend_request(friend_email, invite.invite_id) code = 'warning' results = 'A request has been sent to ' + friend_email else: # Checks if already existing friends am_friend = Friend.query.filter(user_id=session['user_id'], friend_id=friend.user_id).first() is_friend = Friend.query.filter(user_id=friend.user_id, friend_id=session['user_id']).first() if am_friend or is_friend: results = 'You are already friends with ' + friend.username else: friend = Friend(user_id=session['user_id'], friend_id=friend.user_id) friend_rev = Friend(user_id=friend.user_id, friend_id=session['user_id']) db.session.add(friend, friend_rev) db.session.commit() code = 'info' results = friend.username + 'is now your friend.' print results return jsonify({'code': code, 'msg': results})
def load_friends(friends_filename): print("Friends") Friend.query.delete() for row in open(friends_filename): row = row.rstrip() user_id, friend_id = row.split(",") friend = Friend(user_id=user_id, friend_id=friend_id) # We need to add to the session or it won't ever be stored db.session.add(friend) # Once we're done, we should commit our work db.session.commit()
def reply(): inviter_id = request.args.get('inviterId', None) if inviter_id is None: return 'fail' invitation = Invite.query.filter(Invite.user1 == session['user_id'], Invite.user2 == inviter_id).first() if invitation is None: return 'norecord' if request.args.get('reply', 'refuse') == 'accept': db_session.add(Friend(user1=session['user_id'], user2=inviter_id)) db_session.delete(invitation) db_session.commit() return 'success'
def add_friendship(): user_1 = session['user_id'] user_2 = request.form.get('friend_user_id') friendship = Friend(user_1=user_1, user_2=user_2, active=True, friended_on=datetime.today(), modified_on=datetime.today()) db.session.add(friendship) db.session.commit() flash('Friend added successfully.', success_flash) return redirect('/feed')
def load_friends(): """Loads friends relationships from fake data into database.""" print 'Friends' # Delete all rows in table, so if we need to run this a second time, # we won't be trying to add duplicate friend relationships. Friend.query.delete() # Read friend file and insert data for line in open('friends.txt', 'rU'): line = line.rstrip() user_id, friend_id = line.split('|') friend = Friend(user_id=int(user_id), friend_id=int(friend_id)) # Add each friend relationship to the session db.session.add(friend) # Commit at end db.session.commit()
def load_friends(): """Load friends relationship from mini_friend into database.""" print 'Friends' # Delete all rows in table, so if we need to run this a second time, # we won't be trying to add duplicate users Friend.query.delete() # Read user file and insert data for i, row in enumerate(open('data/test_data/mini_friend.csv', 'rU')): row = row.rstrip() link_id, user_id, friend_id = row.split(',') friend = Friend(user_id=int(user_id), friend_id=int(friend_id)) # Add each friend relationship to the session db.session.add(friend) # Commit at end db.session.commit()
def real_friend(uid=None, name=None): # 获取uid if uid is None and name is None: return None elif uid is None and name is not None: # project_name = name uid = get_uid_by_name(name) else: uid = str(uid) print("uid", uid) blog_dict = read_from_csv(path='./' + name + '/' + name + '.csv', obj=Mblog) user_list = {} for bid in blog_dict.keys(): path = './' + name + '/' + str(bid) + '_comments.csv' try: comment_dict = read_from_csv(path=path, obj=Comment) for comment in comment_dict.values(): if len(comment.reply) == 0 and comment.user_id != uid: if user_list.get(comment.user_id) is None: friend = Friend(id=comment.user_id, user=comment.user_name, last_time=comment.created_at, comment=1) user_list[comment.user_id] = friend else: friend = user_list.get(comment.user_id) friend.commented() friend.start_time = comment.created_at key = comment.text friend.set_key(key) elif len(comment.reply) > 0 and comment.user_id == uid: re_comment = comment_dict.get(comment.reply) if re_comment is None: continue if user_list.get(re_comment.user_id) is None: friend = Friend(id=comment.user_id, user=comment.user_name, last_time=comment.created_at, reply=1) user_list[comment.user_id] = friend else: friend = user_list.get(re_comment.user_id) friend.replyed() friend.start_time = comment.created_at except Exception as e: print(e.args[0]) continue fans = read_from_csv(path='./' + name + '/' + uid + '_fans.csv', obj=User) followers = read_from_csv(path='./' + name + '/' + uid + '_followers.csv', obj=User) for friend in user_list.values(): if fans.get(friend.id) is not None: friend.followed = True if followers.get(friend.id) is not None: friend.liked = True store_friends(friends=user_list.values(), project_name=name, filename=name + '_friends')
def register_process(): """Processes registration form.""" fname = request.form['fname'] lname = request.form['lname'] username = request.form['username'] email = request.form['email-reg'] pword = request.form['pword-reg'] bday_str = request.form['bday'] biz = request.form['biz'] invite_id = request.form.get['invite-id'] # Convert picture that would be saved to static/img directory but url stored # in database if 'user-pic' in request.files: filename = pics.save(request.files['user-pic']) pic = pics.url(filename) else: pic = None # Convert birthday to datetime format if bday_str: bday = datetime.strptime(bday_str, '%Y-%m-%d') else: bday = None # Convert boolean to python format if biz == 'true': biz = True else: biz = False # Check if user is already in database user_chk = User.query.filter((User.email == email) | (User.username == username)).first() if user_chk: code = 'danger' results = 'The user name or email provided already has an account. Please log-in.' else: user = User(username=username, first_name=fname, last_name=lname, email=email, password=pword, user_pic=pic, dob=bday, join_date=datetime.today().date(), biz_acct=biz) db.session.add(user) db.session.commit() session['user_id'] = user.user_id session['username'] = user.username session['biz_acct'] = user.biz_acct if user.user_pic: session['user_pic'] = user.user_pic else: session['user_pic'] = '/static/img/dragonfly.jpeg' code = 'success' results = '{} is now registered and logged in as {}'.format(user.email, user.username) if invite_id: invite = Invite.query.get(int(invite_id)) invite.accepted = True friend = Friend(user_id=invite.user_id, friend_id=user.user_id) friend_rev = Friend(user_id=user.user_id, friend_id=invite.user_id) db.session.add(friend, friend_rev) db.session.commit()