(self, db_session: AsyncSession, actor: Optional["Client"] = None)
| 452 | @handle_db_timeout |
| 453 | @transaction_retry(max_retries=5, base_delay=0.1, max_delay=3.0) |
| 454 | async def update(self, db_session: AsyncSession, actor: Optional["Client"] = None) -> "SqlalchemyBase": |
| 455 | logger.debug("Updating %s with ID: %s with actor=%s", self.__class__.__name__, self.id, actor) |
| 456 | if actor: |
| 457 | self._set_created_and_updated_by_fields(actor.id) |
| 458 | |
| 459 | self.set_updated_at() |
| 460 | |
| 461 | try: |
| 462 | db_session.add(self) |
| 463 | await db_session.commit() |
| 464 | await db_session.refresh(self) |
| 465 | return self |
| 466 | except Exception as e: |
| 467 | await db_session.rollback() |
| 468 | logger.error("Failed to update %s with ID %s: %s", self.__class__.__name__, self.id, e) |
| 469 | raise |
| 470 | |
| 471 | @classmethod |
| 472 | @handle_db_timeout |
no test coverage detected