42 lines
1.2 KiB
Python
42 lines
1.2 KiB
Python
from typing import Any, Dict, Optional, Union
|
|
|
|
from sqlalchemy.orm import Session
|
|
|
|
from app.crud.base import CRUDBase
|
|
from app.models.player import Player
|
|
from app.schemas.player import PlayerCreate, PlayerUpdate, PlayerUpdateTeam
|
|
|
|
|
|
class CRUDPlayer(CRUDBase[Player, PlayerCreate, PlayerUpdate]):
|
|
def get_player_by_name(
|
|
self,
|
|
db: Session,
|
|
*,
|
|
firstname: str,
|
|
lastname: str,
|
|
) -> Optional[Player]:
|
|
return (
|
|
db.query(Player)
|
|
.filter(Player.lastname == lastname, Player.firstname == firstname)
|
|
.first()
|
|
)
|
|
|
|
def get_player(self, db: Session, *, player_id: int) -> Optional[Player]:
|
|
return db.query(Player).filter(Player.id == player_id).first()
|
|
|
|
def get_players(self, db: Session, skip: int = 0, limit: int = 100):
|
|
return db.query(Player).offset(skip).limit(limit).all()
|
|
|
|
def create(self, db: Session, *, obj_in: PlayerCreate) -> Player:
|
|
db_obj = Player(
|
|
firstname=obj_in.firstname,
|
|
lastname=obj_in.lastname,
|
|
)
|
|
db.add(db_obj)
|
|
db.commit()
|
|
db.refresh(db_obj)
|
|
return db_obj
|
|
|
|
|
|
player = CRUDPlayer(Player)
|