updated db schema for attachments + add create user api endpoint
This commit is contained in:
1 parent
e6d3f5c7b7
commit
af7d682a38
8 files changed
+91
-9
No files matched your search
@@ -26,10 +26,10 @@ def send_message() -> tuple[str, int]:
|
||||
if any([not p in data for p in ['content', 'thread']]):
|
||||
return '', 400
|
||||
|
||||
new_message = database.MessageORM(
|
||||
user=flask_login.current_user.get_id(),
|
||||
new_message = database.MessageDTO(
|
||||
user_id=flask_login.current_user.get_id(),
|
||||
content=data['content'],
|
||||
thread=data['thread'],
|
||||
thread_id=data['thread'],
|
||||
time=int(time.time())
|
||||
)
|
||||
|
||||
|
||||
@@ -23,3 +23,43 @@ def get_user_forums() -> tuple[flask.Response, int]:
|
||||
forums_dict = {"forums" : [dataclasses.asdict(forum) for forum in forums]}
|
||||
|
||||
return flask.jsonify(forums_dict), 200
|
||||
|
||||
|
||||
@user.route('/create', methods=['POST'])
|
||||
def create_user() -> tuple[flask.Response, int]:
|
||||
"""
|
||||
Create a new user account.
|
||||
Expects JSON with 'username' and 'password' fields.
|
||||
"""
|
||||
data = flask.request.get_json()
|
||||
|
||||
if not data:
|
||||
return flask.jsonify({"error": "No JSON data provided"}), 400
|
||||
|
||||
username = data.get('username')
|
||||
password = data.get('password')
|
||||
|
||||
if not username or not password:
|
||||
return flask.jsonify({"error": "Username and password are required"}), 400
|
||||
|
||||
# Validate username length and characters
|
||||
if len(username.strip()) == 0:
|
||||
return flask.jsonify({"error": "Username cannot be empty"}), 400
|
||||
|
||||
if len(password) < 6:
|
||||
return flask.jsonify({"error": "Password must be at least 6 characters long"}), 400
|
||||
|
||||
# Attempt to create the user
|
||||
new_user = database.create_user(username.strip(), password)
|
||||
|
||||
if new_user is None:
|
||||
return flask.jsonify({"error": "Username already exists or creation failed"}), 409
|
||||
|
||||
# Return the created user (without sensitive data)
|
||||
user_dict = {
|
||||
"id": new_user.id,
|
||||
"name": new_user.name,
|
||||
"message": "User created successfully"
|
||||
}
|
||||
|
||||
return flask.jsonify(user_dict), 201
|
||||
Reference in new issue
Block a user