def login(): if request.method == "POST": email_v = request.form.get("email") password_v = request.form.get("password") # check if email and password exists in db existing_seller = Seller.objects(seller_email=email_v).first() if existing_seller: # ensure hashed password matches user input password_valid = existing_seller.check_password(password_v) if password_valid: session["user"] = existing_seller.seller_name session["userId"] = str(existing_seller.id) flash(f"Welcome {existing_seller.seller_name}") return redirect(url_for("get_products")) return render_template("products.html", seller=existing_seller) else: # invalid password match flash("Incorrect Username and/or Password") return redirect(url_for("login")) else: # username doesn't exist flash("Incorrect Username and/or Password") return redirect(url_for("login")) return render_template("login.html")
def register(): if request.method == "POST": seller_name_v = request.form.get("seller_name") seller_email_v = request.form.get("email") seller_phone_v = request.form.get("phone") seller_city_v = request.form.get("city") password_v = request.form.get("password") # check if username already exists in db existing_seller = Seller.objects(seller_email=seller_email_v).first() if existing_seller: flash("User already exists") return redirect(url_for("register")) new_seller = Seller(seller_name=seller_name_v, seller_email=seller_email_v, seller_city=seller_city_v, seller_phone=seller_phone_v) new_seller.set_password(password_v) new_seller.save() # put the new user into 'session' cookie session["user"] = new_seller.seller_name session["userId"] = str(new_seller.id) print(session) print(new_seller.id) flash("Registration Successful!") return redirect(url_for("update_profile", userId=session["userId"])) return render_template("register.html")
def update_profile(userId): print(session.get('user_id')) print(session.get('userId')) seller = Seller.objects(id=userId).first() if request.method == "GET": sellers_listings = ProductListing.objects(seller_id=seller).all() return render_template("profile.html", seller=seller, listings=sellers_listings) seller_name_v = request.form.get("seller_name") seller_email_v = request.form.get("email") seller_phone_v = request.form.get("phone") seller_city_v = request.form.get("city") password_v = request.form.get("password") seller_photo_v = request.files.get("photo") photo_url = upload_image("users", seller_photo_v) seller.seller_name = seller_name_v seller.email = seller_email_v seller.phone = seller_phone_v seller.city = seller_city_v seller.password = password_v seller.seller_photoURL = photo_url seller.save() return jsonify({"msg": "Profile updated successfully"})
def list_product(userId): categories = Category.objects().all() seller = Seller.objects(id=userId).first() if request.method == "POST": category_id = request.form.get("category_id") product_name_v = request.form.get("product_name") product_price_v = request.form.get("product_price") product_description_v = request.form.get("product_description") product_photo_v = request.files["photo"] photo_url = upload_image("products", product_photo_v) # check if product is already listed existing_product = ProductListing.objects( product_name=product_name_v).first() category = Category.objects(id=category_id) if existing_product: flash("Product already listed") return redirect(url_for("list_product")) new_listing = ProductListing(category_id=category_id, product_name=product_name_v, product_price=product_price_v, product_description=product_description_v, seller_id=seller, product_photoURL=photo_url) new_listing.save() flash("Item listed") return redirect(url_for("list_product", userId=userId)) return render_template("listing_page.html", seller=seller, categories=categories)