* fix: isolation level and nested db.commit() with retry wrappers on concurrent update errors
* refactor: incorporated review comments
changes decorator methods to managed_tx_method and async_managed_tx_method
new enum CommitMode
removed commented commit() from the previous commits
* fix: merge pre-commit errors
* fix: merge pre-commit changes
* fix: conflict in existing OasstErrorCode
* refactor: Added a refresh just to be sure that the select command is triggered on the mapped object
* fix: added refresh for async decorator
Co-authored-by: James Melvin <melvin@gameface.ai>
* add leaderboard stats, periodic update via fastapi-utils
* count label tasks for assistant and prompter replies
* Daily stats update every 15 mins, simplify leaderboard endpoint
* add indices for some created_date columns
* make user stats update intervals configurable
* make sure intervals are positive
* Add endpoints for getting, updating, deleting users by global user ID
* Resolve formatting
* Include alembic revision script
* Updated down_revision to current alembic head
Co-authored-by: Andreas Köpf <andreas.koepf@xamla.com>
* Add endpoint to resolve frontend user by auth method and username
* Require client ID for frontend user lookup
* Remove unnecessary if check
* Fix PromptRepository -> UserRepository
* Convert to protocol User
* Move User prep
* Address review comments
* 404 -> HTTP_404_NOT_FOUND
* Extract classes UserRepository and TaskRepository from PromptRepository
* move close_task() to TaskRepository and get_user_leaderboard to UserRepository()
* Use UserRepository in leaderboards endpoint, add type annotation to leaderboards endpoint