From 04333d210b7307c4aa28f4d8519d9ded01d05f05 Mon Sep 17 00:00:00 2001 From: counterweight Date: Thu, 25 Dec 2025 18:52:23 +0100 Subject: [PATCH] Delegate user persistence to UserRepository - Add create() and update() methods to UserRepository - Update ProfileService to use repository.update() - Update AuthService to use repository.create() --- backend/repositories/user.py | 28 ++++++++++++++++++++++++++++ backend/services/auth.py | 4 ++-- backend/services/profile.py | 3 +-- 3 files changed, 31 insertions(+), 4 deletions(-) diff --git a/backend/repositories/user.py b/backend/repositories/user.py index 833c825..007784d 100644 --- a/backend/repositories/user.py +++ b/backend/repositories/user.py @@ -30,3 +30,31 @@ class UserRepository: select(User.email).where(User.id == godfather_id) ) return result.scalar_one_or_none() + + async def create(self, user: User) -> User: + """ + Create a new user record. + + Args: + user: User instance to persist + + Returns: + Created User record (flushed to get ID) + """ + self.db.add(user) + await self.db.flush() + return user + + async def update(self, user: User) -> User: + """ + Update an existing user record. + + Args: + user: User instance to update + + Returns: + Updated User record (refreshed from database) + """ + await self.db.commit() + await self.db.refresh(user) + return user diff --git a/backend/services/auth.py b/backend/services/auth.py index ff31a54..5e31155 100644 --- a/backend/services/auth.py +++ b/backend/services/auth.py @@ -72,8 +72,8 @@ class AuthService: if default_role: user.roles.append(default_role) - self.db.add(user) - await self.db.flush() # Get user ID + # Create user (flush to get ID) + user = await self.user_repo.create(user) # Mark invite as spent invite.status = InviteStatus.SPENT diff --git a/backend/services/profile.py b/backend/services/profile.py index 8f63bba..447022f 100644 --- a/backend/services/profile.py +++ b/backend/services/profile.py @@ -68,8 +68,7 @@ class ProfileService: user.signal = data.signal user.nostr_npub = data.nostr_npub - await self.db.commit() - await self.db.refresh(user) + await self.user_repo.update(user) godfather_email = await self.user_repo.get_godfather_email(user.godfather_id)