def user_list(): """ GET /users Returns a JSON list of all the users registered in the database. """ users = [] for user in User.select(): users.append(user.username) resp = routing.base.generate_bare_response() resp.update({"users": users}) yield json.dumps(resp) + "\n"
def user_register(): """ POST /register Attempts to register a username for use. Returns `status: 200` if success, or these values on failure: `status: 409` - if username is taken """ username = request.forms.get("username") password = request.forms.get("password") email = request.forms.get("email") res = (User.select().where((User.username == username) | (User.email == email))) if res.count() > 0: resp = routing.base.generate_error_response(code=409) resp["message"] = "Username taken." return json.dumps(resp) + "\n" if not validate_email(email): resp = routing.base.generate_error_response(code=409) resp["message"] = "Invalid email address." return json.dumps(resp) + "\n" password = hashlib.sha512(password).hexdigest() new_user = User.create(username=username, password=password, email=email) new_user.save() resp = routing.base.generate_bare_response() resp["account"] = { "registered": True, "username": username, "email": email } return json.dumps(resp) + "\n"