fix: Add missing commas in function calls and improve code formatting
Some checks failed
Backend CI / lint (push) Failing after 4m51s
Backend CI / test (push) Successful in 4m19s

This commit is contained in:
JSC
2025-08-12 23:37:38 +02:00
parent d3d7edb287
commit f094fbf140
18 changed files with 135 additions and 133 deletions

View File

@@ -1,9 +1,10 @@
"""Playlist repository for database operations."""
from enum import Enum
from sqlalchemy import func, update
from sqlalchemy.orm import selectinload
from sqlmodel import col, select
from sqlmodel import select
from sqlmodel.ext.asyncio.session import AsyncSession
from app.core.logging import get_logger
@@ -18,7 +19,7 @@ logger = get_logger(__name__)
class PlaylistSortField(str, Enum):
"""Playlist sort field enumeration."""
NAME = "name"
GENRE = "genre"
CREATED_AT = "created_at"
@@ -29,7 +30,7 @@ class PlaylistSortField(str, Enum):
class SortOrder(str, Enum):
"""Sort order enumeration."""
ASC = "asc"
DESC = "desc"
@@ -154,7 +155,7 @@ class PlaylistRepository(BaseRepository[Playlist]):
# Use a two-step approach to avoid unique constraint violations:
# 1. Move all affected positions to negative temporary positions
# 2. Then move them to their final positions
# Step 1: Move to temporary negative positions
update_to_negative = (
update(PlaylistSound)
@@ -166,8 +167,8 @@ class PlaylistRepository(BaseRepository[Playlist]):
)
await self.session.exec(update_to_negative)
await self.session.commit()
# Step 2: Move from temporary negative positions to final positions
# Step 2: Move from temporary negative positions to final positions
update_to_final = (
update(PlaylistSound)
.where(
@@ -337,15 +338,15 @@ class PlaylistRepository(BaseRepository[Playlist]):
.join(Sound, PlaylistSound.sound_id == Sound.id, isouter=True)
.group_by(Playlist.id, User.name)
)
# Apply filters
if search_query and search_query.strip():
search_pattern = f"%{search_query.strip().lower()}%"
subquery = subquery.where(func.lower(Playlist.name).like(search_pattern))
if user_id is not None:
subquery = subquery.where(Playlist.user_id == user_id)
# Apply sorting
if sort_by == PlaylistSortField.SOUND_COUNT:
if sort_order == SortOrder.DESC:
@@ -360,7 +361,7 @@ class PlaylistRepository(BaseRepository[Playlist]):
else:
# Default sorting by name
subquery = subquery.order_by(Playlist.name.asc())
else:
# Simple query without stats-based sorting
subquery = (
@@ -385,15 +386,15 @@ class PlaylistRepository(BaseRepository[Playlist]):
.join(Sound, PlaylistSound.sound_id == Sound.id, isouter=True)
.group_by(Playlist.id, User.name)
)
# Apply filters
if search_query and search_query.strip():
search_pattern = f"%{search_query.strip().lower()}%"
subquery = subquery.where(func.lower(Playlist.name).like(search_pattern))
if user_id is not None:
subquery = subquery.where(Playlist.user_id == user_id)
# Apply sorting
if sort_by:
if sort_by == PlaylistSortField.NAME:
@@ -406,7 +407,7 @@ class PlaylistRepository(BaseRepository[Playlist]):
sort_column = Playlist.updated_at
else:
sort_column = Playlist.name
if sort_order == SortOrder.DESC:
subquery = subquery.order_by(sort_column.desc())
else:
@@ -414,16 +415,16 @@ class PlaylistRepository(BaseRepository[Playlist]):
else:
# Default sorting by name ascending
subquery = subquery.order_by(Playlist.name.asc())
# Apply pagination
if offset > 0:
subquery = subquery.offset(offset)
if limit is not None:
subquery = subquery.limit(limit)
result = await self.session.exec(subquery)
rows = result.all()
# Convert to dictionary format
playlists = []
for row in rows:
@@ -442,11 +443,11 @@ class PlaylistRepository(BaseRepository[Playlist]):
"sound_count": row.sound_count or 0,
"total_duration": row.total_duration or 0,
})
return playlists
except Exception:
logger.exception(
"Failed to search and sort playlists: query=%s, sort_by=%s, sort_order=%s",
search_query, sort_by, sort_order
search_query, sort_by, sort_order,
)
raise