from ..models import Server from ..schemas import ServerBase, ServerSchema from sqlalchemy import select, delete from sqlalchemy.ext.asyncio import AsyncSession from typing import Sequence, Optional, List async def get_all( session: AsyncSession ) -> Sequence[ServerSchema]: stmt = select(Server).order_by(Server.id) result = await session.scalars(stmt) return result.all() async def get( session: AsyncSession, id: int ) -> ServerSchema: db_login = await session.get(Server,id) if db_login is None: return None return db_login async def create( session:AsyncSession, model: ServerBase ) -> ServerSchema: login = Server(**model.model_dump()) session.add(login) await session.commit() return login async def delete( session: AsyncSession, id: int ): db_login = await session.get(Server,id) if db_login is None: return None stmt = delete(Server).filter(Server.id == id) await session.execute(stmt) await session.commit() async def update( session:AsyncSession, id: int, model: ServerBase ) -> ServerSchema: db_login = await session.get(Server,id) if db_login is None: return None for var, value in vars(model).items(): setattr(db_login, var, value) if value else None await session.commit() return db_login