Complete repository delegation - remove remaining direct db operations

- Add commit() method to AvailabilityRepository for transaction control
- Add refresh() method to UserRepository
- Update AvailabilityService to use repository.commit() instead of db.commit()
- Update AuthService to use UserRepository.refresh() instead of db.refresh()
- All services now consistently delegate ALL persistence to repositories
This commit is contained in:
counterweight 2025-12-25 18:57:55 +01:00
parent 33aa8ad13b
commit db181b338c
Signed by: counterweight
GPG key ID: 883EDBAA726BD96C
4 changed files with 13 additions and 4 deletions

View file

@ -79,9 +79,10 @@ class AuthService:
invite.status = InviteStatus.SPENT
invite.used_by_id = user.id
invite.spent_at = datetime.now(UTC)
await self.invite_repo.update(invite)
await self.db.commit()
await self.db.refresh(user)
# Refresh user to ensure it's up to date
await self.user_repo.refresh(user)
# Create access token
access_token = create_access_token(data={"sub": str(user.id)})

View file

@ -118,7 +118,7 @@ class AvailabilityService:
for slot in slots
]
await self.availability_repo.create_multiple(availabilities)
await self.db.commit()
await self.availability_repo.commit()
return AvailabilityDay(date=target_date, slots=slots)
@ -188,7 +188,7 @@ class AvailabilityService:
)
# Commit all changes atomically
await self.db.commit()
await self.availability_repo.commit()
except Exception:
# Rollback on any error to maintain atomicity
await self.db.rollback()