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:
parent
17aead2e21
commit
04333d210b
3 changed files with 31 additions and 4 deletions
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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)
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue