Esempio n. 1
0
def upload_file():
    print(
        current_user.roles
    )  #returns either admin or end-user but next line always goes through?
    # if current_user.roles is 'admin':
    form = UploadForm()
    if request.method == 'POST':
        # check if the post request has the file part
        if 'file' not in request.files:
            flash('No file part')
            return redirect(request.url)
        file = request.files['file']
        name = request.form['text']
        user = current_user.id
        if file.filename == '':
            flash('No selected file')
            return redirect(request.url)
        if file and not allowed_file(file.filename):
            flash('Unsupported File Type')
            return redirect(request.url)
        if file and allowed_file(file.filename):
            filename = secure_filename(file.filename)
            resstr, fileLOC = upload_file_to_s3(file, 'laneck')
            # print(type(fileLOC))
            fileLOC = ', '.join(fileLOC)
            # print(fileLOC)
            if store_fileInfo(fileLOC, name,
                              user):  #creates db entry for song e
                print('succesful upload')
                return redirect(url_for('music'))
            else:
                flash('Song already exists in the database')
                return redirect(request.url)
    return render_template('upload.html', form=form)
Esempio n. 2
0
def post_by_id(post_id):
    post = Post.query.get(post_id)
    if request.method == "GET":
        return post.to_dict()
    elif request.method == "PUT":
        form = CreatePost()
        if form.validate_on_submit():
            form.populate_obj(post)
            db.session.commit()

            if "images" in request.files:
                images = request.files.getlist("images")
                for image in images:
                    if allowed_file(image.filename):
                        image.filename = get_unique_filename(image.filename)
                        image_url = upload_file_to_s3(image, Config.S3_BUCKET)
                        image = PostsImage(post_id=post.id,
                                           image_url=image_url)
                        db.session.add(image)
                db.session.commit()
            return post.to_dict()
        return {"errors": validation_errors_to_error_messages(form.errors)}
    elif request.method == "DELETE":
        post.title = "[DELETED]"
        post.body = "[DELETED]"
        posts_images = PostsImage.query.filter(
            PostsImage.post_id == post_id).all()
        for image in posts_images:
            db.session.delete(image)
        db.session.commit()

        return post.to_dict()
    return post.to_dict()
Esempio n. 3
0
def create_user_page():
    form = CreateUserPage()
    form['csrf_token'].data = request.cookies['csrf_token']
    profileImg = ""
    image = ""
    date = ""

    if form.data['profileImg'] is not None:
        image = form.data['profileImg']

    if image != "":
        if type(image) == str:
            profileImg = image
        elif allowed_file(image.filename):
            image.filename = secure_filename(image.filename)
            profileImg = upload_file_to_s3(image, Config.S3_BUCKET)

    try:
        userPage = User_page.query.filter(
            User_page.userId == form.userId.data).first()
        if not profileImg:
            profileImg = userPage.profileImg
        form.populate_obj(userPage)
        userPage.weddingDateTime = request.form.get("weddingDateTime")
        userPage.profileImg = profileImg
        db.session.commit()
        return userPage.to_dict()
    except Exception as e:
        userPage = User_page()
        form.populate_obj(userPage)
        userPage.profileImg = profileImg
        db.session.add(userPage)
        db.session.commit()
        return userPage.to_dict()
Esempio n. 4
0
def update_pet(petId):
    """
    Update pet
    """
    form = CreatePetForm()
    form["csrf_token"].data = request.cookies["csrf_token"]

    image_error = []
    image = request.files.get("image", None)

    pet_to_update = Pet.query.get(petId)

    print("pet to update ------------------ ", pet_to_update.to_dict())

    pet_to_update.name = form.data["name"]
    pet_to_update.petType = form.data["petType"]
    pet_to_update.age = form.data["age"]
    pet_to_update.energy = form.data["energy"]
    pet_to_update.social = form.data["social"]
    pet_to_update.behaved = form.data["behaved"]
    pet_to_update.size = form.data["size"]
    pet_to_update.env = form.data["env"]
    pet_to_update.description = form.data["description"]

    if image is not None:
        image.filename = secure_filename(image.filename)
        pattern = re.compile(".*(apng|avif|jpe?g|png|svg|webp)$",
                             re.IGNORECASE)
        is_image = bool(pattern.match(image.mimetype))
        if not is_image:
            image_error.append(
                "Upload must be an image (apng, avif, jpeg/jpg, png, svg, webp)."
            )

    if form.validate_on_submit() and not image_error:

        output_link = upload_file_to_s3(image) if image else None

        if output_link:
            pet_to_update.imageURL = output_link

        print("updated pet ------------------ ", pet_to_update.to_dict())

        db.session.add(pet_to_update)
        db.session.commit()
        return pet_to_update.to_dict()

    errors = validation_errors_to_error_messages(form.errors)
    errors += image_error

    return {"errors": errors}
Esempio n. 5
0
def create_pet():
    """
    Create new pet
    """
    form = CreatePetForm()
    form["csrf_token"].data = request.cookies["csrf_token"]

    image_error = []
    image = request.files.get("image", None)

    if image != None:
        image.filename = secure_filename(image.filename)
        pattern = re.compile(".*(apng|avif|jpe?g|png|svg|webp)$",
                             re.IGNORECASE)
        is_image = bool(pattern.match(image.mimetype))
        if not is_image:
            image_error.append(
                "Upload must be an image (apng, avif, jpeg/jpg, png, svg, webp)."
            )

    if form.validate_on_submit() and not image_error:

        output_link = (
            upload_file_to_s3(image) if image else
            "https://pair-yo-pet-aws.s3-us-west-1.amazonaws.com/default-dog.png"
        )

        new_pet = Pet(
            userId=form.data["userId"],
            name=form.data["name"],
            petType=form.data["petType"],
            age=form.data["age"],
            imageURL=output_link,
            energy=form.data["energy"],
            social=form.data["social"],
            behaved=form.data["behaved"],
            size=form.data["size"],
            env=form.data["env"],
            description=form.data["description"],
        )
        db.session.add(new_pet)
        db.session.commit()
        return new_pet.to_dict()

    errors = validation_errors_to_error_messages(form.errors)
    errors += image_error

    return {"errors": errors}
Esempio n. 6
0
def update_joke(jokeId):
    """
    Update joke
    """
    form = CreateJokeForm()
    form["csrf_token"].data = request.cookies["csrf_token"]

    image_error = []
    image = request.files.get("image", None)

    joke_to_update = Joke.query.get(jokeId)

    print("joke to update ------------------ ", joke_to_update.to_dict())

    joke_to_update.joke = form.data["joke"]
    joke_to_update.jokeType = form.data["jokeType"]

    if image is not None:
        image.filename = secure_filename(image.filename)
        pattern = re.compile(".*(apng|avif|jpe?g|png|svg|webp)$",
                             re.IGNORECASE)
        is_image = bool(pattern.match(image.mimetype))
        if not is_image:
            image_error.append(
                "Upload must be an image (apng, avif, jpeg/jpg, png, svg, webp)."
            )

    if form.validate_on_submit() and not image_error:

        output_link = upload_file_to_s3(image) if image else None

        if output_link:
            joke_to_update.imageURL = output_link

        print("updated joke ------------------ ", joke_to_update.to_dict())

        db.session.add(joke_to_update)
        db.session.commit()
        return joke_to_update.to_dict()

    errors = validation_errors_to_error_messages(form.errors)
    errors += image_error

    return {"errors": errors}
Esempio n. 7
0
def create_post():
    form = CreatePost()
    if form.validate_on_submit():
        post = Post()
        form.populate_obj(post)
        db.session.add(post)
        db.session.commit()

        if "images" in request.files:
            images = request.files.getlist("images")
            for image in images:
                if allowed_file(image.filename):
                    image.filename = get_unique_filename(image.filename)
                    image_url = upload_file_to_s3(image, Config.S3_BUCKET)
                    image = PostsImage(post_id=post.id, image_url=image_url)
                    db.session.add(image)
            db.session.commit()
        return post.to_dict()
    return {"errors": validation_errors_to_error_messages(form.errors)}
Esempio n. 8
0
def create_server():
    form = ServerForm()
    # form['csrf_token'].data = request.cookies['csrf_token']
    if form.is_submitted():
        if ("image" in request.files):
            image = request.files["image"]
            image.filename = get_unique_filename(image.filename)
            upload = upload_file_to_s3(image)
            url = upload["url"]
        else:
            url = ""
        server = Server(admin_id=form.data['admin_id'],
                        name=form.data['name'],
                        image=url,
                        public=form.data['public'],
                        created_at=form.data['created_at'])
        db.session.add(server)
        db.session.commit()
        return server.to_dict()
    return "did not go thru", 401
Esempio n. 9
0
def create_joke():
    """
    Create new joke
    """
    form = CreateJokeForm()
    form["csrf_token"].data = request.cookies["csrf_token"]

    image_error = []
    image = request.files.get("image", None)

    if image is not None:
        image.filename = secure_filename(image.filename)
        pattern = re.compile(".*(apng|avif|jpe?g|png|svg|webp)$",
                             re.IGNORECASE)
        is_image = bool(pattern.match(image.mimetype))
        if not is_image:
            image_error.append(
                "Upload must be an image (apng, avif, jpeg/jpg, png, svg, webp)."
            )

    if form.validate_on_submit() and not image_error:

        output_link = (
            upload_file_to_s3(image) if image else
            "https://pair-yo-pet-aws.s3-us-west-1.amazonaws.com/default-dog.png"
        )

        new_joke = Joke(
            userId=form.data["userId"],
            joke=form.data["joke"],
            imageURL=output_link,
            jokeType=form.data["jokeType"],
        )
        db.session.add(new_joke)
        db.session.commit()
        return new_joke.to_dict()

    errors = validation_errors_to_error_messages(form.errors)
    errors += image_error

    return {"errors": errors}
Esempio n. 10
0
def sign_up():
    """
    Creates a new user and logs them in
    """
    form = SignUpForm()
    form['csrf_token'].data = request.cookies['csrf_token']
    if form.validate_on_submit():
        if ("image" in request.files):
            image = request.files["image"]
            image.filename = get_unique_filename(image.filename)
            upload = upload_file_to_s3(image)
            url = upload["url"]
        else:
            url = ""
        user = User(username=form.data['username'],
                    email=form.data['email'],
                    password=form.data['password'],
                    profile_picture=url,
                    created_at=form.data['created_at'])
        db.session.add(user)
        db.session.commit()
        login_user(user)
        return user.to_dict()
    return {'errors': validation_errors_to_error_messages(form.errors)}, 401