def entries(): if "username" not in session: # if user is not logged in, return redirect(url_for("login")) # redirect to login page blog_title = request.args["blog_name"] # set blog_title to blog name acquired from GET request user = session["username"] # set user to username of person logged in blog_owner = user # blog_owner is set to user by default if "user" in request.args and request.args["user"] != "Your": blog_owner = request.args["user"] if "blog_id" in request.args: # if blog_id is in GET request (which happens when blog is just created), blog_id = request.args["blog_id"] # set blog_id to that GET request else: # else if blog_id is not in GET request blog_id = db_manager.get_blog_id_from_title(blog_owner, blog_title) # get blog_id from database based on the username and blog_title # if user is not the owner of the blog, None is returned if len(request.args) == 4: # if the length of GET requests is 4, meaning user is updating, deleting, # or creating entries, entry_title = request.args["entry_title"] entry_content = request.args["entry_content"] # set entry_title and entry_content based on the GET requests if "update" in request.args: # if user is updating an entry db_manager.remove_entry(db_manager.get_entry_id(entry_title, blog_id)) # tell database to remove the entry db_manager.add_entry(entry_title, entry_content, blog_id) # create a new entry in database with the same blog_id and entry_title, # but with the updated content if "delete" in request.args: # if user is deleting an entry db_manager.remove_entry(db_manager.get_entry_id(entry_title, blog_id)) # tell database to remove the entry after getting its entry_id given # entry_title and blog_id if "create" in request.args: # if user is creating entry if entry_title == "": # if entry_title is blank, flash("Please do not have a blank entry title") # flash an error else: response = db_manager.add_entry(entry_title, entry_content, blog_id) # tell database to add entry given the entry_title, entry_content, # and blog_id if response != "": # if entry was not added successfully (because of duplicate title), flash(response) # flash an error return render_template("entries.html", blog_name=blog_title, entries=db_manager.get_entries_for_blog(blog_id), isOwner=db_manager.is_owner(user, blog_id))
def blogs(): if "username" not in session: # if user is not logged in, return redirect(url_for("login")) # redirect to login page user = session["username"] # user is set to username of logged in user blog_owner = user # blog_owner is set to user by default if "user" in request.args: # if user is not blog_owner blog_owner = request.args["user"][:len(request.args["user"]) - 8] #set blog_owner to the username of the actual owner of the blog if "blog_creation" in request.args: # if the blog_owner clicked on create blog button, title = request.args["blog_name"] # set title to the blog title that user entered if title == "": flash("Please do not have an empty blog title") else: response = db_manager.create_blog_for_username(user, title) # verify blog title with database if response == "": # if blog title is unique return redirect( url_for("entries", blog_id=db_manager.get_blog_id_from_title( user, title), blog_name=title)) # redirect to the entries page of the new blog with # the blog title and blog id as GET requests flash(response) # else flash error if blog with the same title already exists return render_template("blogs.html", username=user, name=("Your" if blog_owner == user else blog_owner), isOwner=(blog_owner == user), blogs=db_manager.get_blogs_for_username(blog_owner))