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}
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)}
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()
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()
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"
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
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