updated db schema for attachments + add create user api endpoint

This commit is contained in:
0x01FE committed 2025-08-21 16:22:34 -05:00
1 parent e6d3f5c7b7
commit af7d682a38
8 files changed
+91 -9

No files matched your search

+32 -5
View File
@@ -7,7 +7,7 @@ import flask_login
import mgU
DATABASE = "./main2.db"
DATABASE = "./main.db"
ph = argon2.PasswordHasher()
@@ -46,21 +46,48 @@ class UserDTO:
@dataclasses.dataclass
class MessageDTO:
user: UserDTO
user_id: UserDTO
content: str
time: int
thread_id: int
id: int | None = None
def insert_message(message: mgU.Message) -> None:
def create_user(username: str, password: str) -> mgU.User | None:
"""
Create a new user with the given username and password.
Returns the created User object with id, or None if creation fails.
"""
# Hash the password
passhash = ph.hash(password)
try:
with Opener() as (conn, cur):
q = load_query("insert_user")
cur.execute(q, [username, passhash])
user_id = cur.lastrowid
return mgU.User(name=username, id=user_id)
except sqlite3.IntegrityError:
# Username already exists or other constraint violation
return None
def insert_message(message: mgU.Message | MessageDTO) -> None:
"""
Insert a new message (from mgU.Message dataclass) and return a new mgU.Message with id, or None on failure.
"""
if type(message) == mgU.Message:
thread_id = message.thread
user_id = message.user.id
elif type(message) == MessageDTO:
thread_id = message.thread_id
user_id = message.user_id
with Opener() as (conn, cur):
q = load_query("insert_message")
cur.execute(q, [
message.user,
message.thread,
user_id,
thread_id,
message.content,
message.time
])