From 5320319520457516b0a7956a62154c44a1c3040d Mon Sep 17 00:00:00 2001 From: Dan Draper Date: Mon, 18 Nov 2024 17:33:24 +1100 Subject: [PATCH 1/2] Added create_user and get_user API endpoints --- app.py | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/app.py b/app.py index 90444d4..54b88e5 100644 --- a/app.py +++ b/app.py @@ -4,7 +4,7 @@ from models import User app = Flask(__name__) -init_db() +#init_db() @app.route("/") def hello_world(): @@ -31,6 +31,30 @@ def users(): return User.query.all() +@app.route("/users/") +def get_user(user_id): + user = User.query.get(user_id) + if user is None: + return {"message": "User not found"}, 404 + return { + "id": user.id, + "name": user.name, + "email": user.email, + "secret": user.secret + } + +@app.route("/users", methods=["POST"]) +def create_user(): + name = request.json.get('name') + email = request.json.get('email') + secret = request.json.get('secret') + if not name or not email or not secret: + return {"message": "Missing required fields"}, 400 + new_user = User(name, email, secret) + db_session.add(new_user) + db_session.commit() + return {"message": "User created successfully", "user": {"name": name}}, 201 + @app.teardown_appcontext def shutdown_session(exception=None): db_session.remove() From fedd08001f1548058b721cf71d97582b013021ba Mon Sep 17 00:00:00 2001 From: Dan Draper Date: Thu, 21 Nov 2024 20:55:10 +1100 Subject: [PATCH 2/2] Set padding to pkcs5 --- models.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/models.py b/models.py index fb49f71..48e199a 100644 --- a/models.py +++ b/models.py @@ -16,7 +16,7 @@ class User(Base): id = Column(Integer, primary_key=True) name = Column(String(50), unique=False) email = Column(String(120), unique=True) - secret = Column(StringEncryptedType(String, length=255, key='abc')) + secret = Column(StringEncryptedType(String, length=255, key='abc', padding='pkcs5')) gender = Column(StringEncryptedType(String, engine=AesEngine, length=255, key='abc')) safer_gender = Column(StringEncryptedType(String, engine=AesGcmEngine, length=255, key='abc'))