diff --git a/yellow/models.py b/yellow/models.py index 530c9be..d561820 100644 --- a/yellow/models.py +++ b/yellow/models.py @@ -22,10 +22,10 @@ class User(pw.Model): @staticmethod async def search(needle) -> List['User']: + if not needle: + raise Exception("need search term") needle = needle.replace("*", "") needle = needle.lower() - if len(needle) <= 1: - raise Exception("need longer search term") return User.select().where( User.address.is_null(False), diff --git a/yellow/routes.py b/yellow/routes.py index b2c9da9..57325b0 100644 --- a/yellow/routes.py +++ b/yellow/routes.py @@ -34,7 +34,6 @@ async def dashboard(): @bp_routes.post("/dashboard/address") @login_required async def dashboard_address_post(): - # get FORM POST value 'address' form = await request.form address = form.get('address') if not bool(re.match(r'^(WW)\\d[0-9A-Za-z]{94}$', address)): @@ -50,13 +49,21 @@ async def dashboard_address_post(): return await render_template('dashboard.html') +@bp_routes.post("/dashboard/address/delete") +@login_required +async def dashboard_address_delete(): + from yellow.models import User + user = User.select().filter(User.id == session['user']['id']).get() + user.address = None + user.save() + session['user'] = user.to_json() + return redirect(url_for("bp_routes.dashboard")) + + @bp_routes.route("/search") async def search(): needle = request.args.get('username') if needle: - if len(needle) <= 1: - raise Exception("Search term needs to be longer") - users = [u for u in await User.search(needle)] if users: return await render_template('search_results.html', users=users) @@ -73,7 +80,7 @@ async def search(): @bp_routes.route("/user/") async def user_page(name: str): - if not name or len(name) <= 1: + if not name: raise Exception("invalid name") name = name.lower() diff --git a/yellow/templates/dashboard.html b/yellow/templates/dashboard.html index ee72a3a..5d7f50e 100644 --- a/yellow/templates/dashboard.html +++ b/yellow/templates/dashboard.html @@ -5,7 +5,7 @@
-
+
Welcome back {{user.username}}!
Current WOW address: