Add CRUD operations and tests for EventTheme management
Introduced CRUD implementation, schema definitions, and tests for EventTheme. This allows creation, retrieval, updating, deletion, and querying of active event themes. Comprehensive tests ensure functionality works as intended, including edge cases for nonexistent themes.
This commit is contained in:
25
backend/app/crud/event_theme.py
Normal file
25
backend/app/crud/event_theme.py
Normal file
@@ -0,0 +1,25 @@
|
||||
from typing import List, Optional
|
||||
from sqlalchemy.orm import Session
|
||||
|
||||
from app.crud.base import CRUDBase
|
||||
from app.models.event_theme import EventTheme
|
||||
from app.schemas.event_theme import EventThemeCreate, EventThemeUpdate
|
||||
|
||||
|
||||
class CRUDEventTheme(CRUDBase[EventTheme, EventThemeCreate, EventThemeUpdate]):
|
||||
def get_by_name(self, db: Session, *, name: str) -> Optional[EventTheme]:
|
||||
return db.query(EventTheme).filter(EventTheme.name == name).first()
|
||||
|
||||
def get_active_themes(
|
||||
self, db: Session, *, skip: int = 0, limit: int = 100
|
||||
) -> List[EventTheme]:
|
||||
return (
|
||||
db.query(self.model)
|
||||
.filter(self.model.events.any())
|
||||
.offset(skip)
|
||||
.limit(limit)
|
||||
.all()
|
||||
)
|
||||
|
||||
|
||||
event_theme = CRUDEventTheme(EventTheme)
|
||||
Reference in New Issue
Block a user