Ejemplo n.º 1
0
    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
Ejemplo n.º 2
0
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
Ejemplo n.º 3
0
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)
Ejemplo n.º 4
0
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
Ejemplo n.º 5
0
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')
Ejemplo n.º 6
0
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})
Ejemplo n.º 7
0
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()
Ejemplo n.º 8
0
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'
Ejemplo n.º 9
0
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')
Ejemplo n.º 10
0
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()
Ejemplo n.º 11
0
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()
Ejemplo n.º 12
0
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')
Ejemplo n.º 13
0
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()