Delegate user persistence to UserRepository

- Add create() and update() methods to UserRepository
- Update ProfileService to use repository.update()
- Update AuthService to use repository.create()
This commit is contained in:
counterweight 2025-12-25 18:52:23 +01:00
parent 17aead2e21
commit 04333d210b
Signed by: counterweight
GPG key ID: 883EDBAA726BD96C
3 changed files with 31 additions and 4 deletions

View file

@ -30,3 +30,31 @@ class UserRepository:
select(User.email).where(User.id == godfather_id) select(User.email).where(User.id == godfather_id)
) )
return result.scalar_one_or_none() 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

View file

@ -72,8 +72,8 @@ class AuthService:
if default_role: if default_role:
user.roles.append(default_role) user.roles.append(default_role)
self.db.add(user) # Create user (flush to get ID)
await self.db.flush() # Get user ID user = await self.user_repo.create(user)
# Mark invite as spent # Mark invite as spent
invite.status = InviteStatus.SPENT invite.status = InviteStatus.SPENT

View file

@ -68,8 +68,7 @@ class ProfileService:
user.signal = data.signal user.signal = data.signal
user.nostr_npub = data.nostr_npub user.nostr_npub = data.nostr_npub
await self.db.commit() await self.user_repo.update(user)
await self.db.refresh(user)
godfather_email = await self.user_repo.get_godfather_email(user.godfather_id) godfather_email = await self.user_repo.get_godfather_email(user.godfather_id)