示例#1
0
def upload_image():
    if "image" not in request.files:
        return {"errors": "image required"}, 400

    image = request.files["file"]

    if not allowed_file(image.filename):
        return {"errors": "file type not permitted"}, 400

    image.filename = get_unique_filename(image.filename)

    upload = upload_file_to_s3(image)

    if "url" not in upload:
        # if the dictionary doesn't have a url key
        # it means that there was an error when we tried to upload
        # so we send back that error message
        return upload, 400

    url = upload["url"]
    # flask_login allows us to get the current user from the request
    new_image = Photo(user=current_user, url=url)
    db.session.add(new_image)
    db.session.commit()
    return {"url": url}
示例#2
0
def sign_up():
    """
    Creates a new user and logs them in
    """
    form = SignUpForm()
    form['csrf_token'].data = request.cookies['csrf_token']
    if "profile_pic" not in request.files:
        return "No user_file key in request.files"

    file = request.files["profile_pic"]
    print("HELLOOOOOOOOOOOOOOO")
    print(dir(file))
    if file:
        file_url = upload_file_to_s3(file, Config.S3_BUCKET)
    else:
        file_url = ''

    if form.validate_on_submit():
        user = User(username=form.data['username'],
                    email=form.data['email'],
                    password=form.data['password'],
                    profile_pic=file_url,
                    fav_anime_id=int(form.data['fav_anime_id']))
        db.session.add(user)
        db.session.commit()
        login_user(user)
        return user.to_dict()
    return {'errors': validation_errors_to_error_messages(form.errors)}
示例#3
0
def update_profile_photo(id):
    user = User.query.get(id)
    if "profilePicture" not in request.files:
        return "No file key in request.files"
    profile_photo = request.files['profilePicture']
    if profile_photo:
        profile_photo_link = upload_file_to_s3(profile_photo)
        user.profile_picture = profile_photo_link
    else:
        return "No file key in request.files"
    db.session.commit()

    return user.to_dict()
示例#4
0
def update_cover_photo(id):
    user = User.query.get(id)
    if "coverPicture" not in request.files:
        return "No file key in request.files"
    cover_photo = request.files['coverPicture']
    if cover_photo:
        cover_photo_link = upload_file_to_s3(cover_photo)
        user.cover_picture = cover_photo_link
    else:
        return "No file key in request.files"
    db.session.commit()

    return user.to_dict()
示例#5
0
文件: post.py 项目: anassri/deary
def create_post():
    post_type = request.form['post_type']
    description = request.form['description']
    user_id = int(request.form['user_id'])
    created_at = request.form['created_at']

    post_type_rec = PostType.query.filter(PostType.type==post_type).first()
    
    if "location" in request.form:
        location = request.form['location']
        location_rec = Location(location=location)
        db.session.add(location_rec) 
        db.session.commit()
        location_id = location_rec.id
    else:
        location_id = None

    post = Post(user_id=user_id,
                description=description,
                type_id=post_type_rec.id,
                created_at=created_at,
                location_id=location_id )

    db.session.add(post) 
    db.session.commit()

    if "photo" in request.files:
        photo = request.files['photo']
        photo_link = upload_file_to_s3(photo)
        photo_rec = Photo(path=photo_link,
                            post_id=post.id)
        db.session.add(photo_rec) 

    if "tagged_friends" in request.form:
        tagged_friends = request.form['tagged_friends']
        friends = tagged_friends.split(',')
        for friend in friends:
            print(friend)
            friend_id = int(friend)
            tagged_friend = TaggedFriend(user_id=friend_id,
                                            post_id=post.id)
            db.session.add(tagged_friend) 
            db.session.commit()
            
    # db.session.add(post) 
    db.session.commit()

    return "done"
示例#6
0
def update_profile_pic(id):

    # find user by id
    user = User.query.get(id)

    # Make form and get csrf_token from request
    form = ProfileForm()
    form['csrf_token'].data = request.cookies['csrf_token']

    # Validate form
    if form.validate_on_submit():

        # find user by id
        user = User.query.get(id)

        # add form data to user
        user.bio = request.form.get("bio")
        user.street_address = request.form.get("street_address")
        user.city = request.form.get("city")
        user.state = request.form.get("state")
        user.zipcode = request.form.get("zipcode")
        user.updated_at = datetime.now()

        # checking if file was uploaded
        if len(request.files) > 0:
            file = request.files["file"]

            print(file.filename)
            print(type(file))
            if check_file(file.filename):
                file_url = upload_file_to_s3(file, Config.S3_BUCKET)
                user.profile_image_url = file_url
            else:
                return {
                    'errors':
                    ['Unaccepted file extension, must be JPG, PNG, or JPEG']
                }, 400

        db.session.commit()
        return user.to_dict()

    return {'errors': validation_errors_to_error_messages(form.errors)}, 400
示例#7
0
def upload_images():

    images = {}
    idx = 0
    if len(request.files) > 0:
        file_list = request.files.getlist('images')
        for file in file_list:
            if not check_file(file.filename):
                return {'errors': ['Unaccepted file extension, must be JPG, PNG, or JPEG']}, 400
        for file in file_list:
            image = Image()
            image.user_id=current_user.id
            image.type_id=request.form.get("type_id")
            image.type=request.form.get("type")
            file_url = upload_file_to_s3(file, Config.S3_BUCKET)
            image.image_url = file_url
            db.session.add(image)
            db.session.commit()
            images[idx] = image.to_dict()
            idx += 1
            
        return images, 201
    else:
        return {"errors":"no files"}, 400