Добавлены базы и роуты для Серверов и Баз Данных

This commit is contained in:
2024-10-23 16:53:57 +09:00
parent 505e1b1377
commit 6fece6d096
22 changed files with 783 additions and 29 deletions

0
core/crud/__init__.py Normal file
View File

53
core/crud/databases.py Normal file
View File

@ -0,0 +1,53 @@
from ..models import Database
from ..schemas import DatabaseBase, DatabaseSchema
from sqlalchemy import select, delete
from sqlalchemy.ext.asyncio import AsyncSession
from typing import Sequence, Optional, List
async def get_all(
session: AsyncSession
) -> Sequence[DatabaseSchema]:
stmt = select(Database).order_by(Database.id)
result = await session.scalars(stmt)
return result.all()
async def get(
session: AsyncSession,
id: int
) -> DatabaseSchema:
db_login = await session.get(Database,id)
if db_login is None:
return None
return db_login
async def create(
session:AsyncSession,
model: DatabaseBase
) -> DatabaseSchema:
login = Database(**model.model_dump())
session.add(login)
await session.commit()
return login
async def delete(
session: AsyncSession,
id: int
):
db_login = await session.get(Database,id)
if db_login is None:
return None
stmt = delete(Database).filter(Database.id == id)
await session.execute(stmt)
await session.commit()
async def update(
session:AsyncSession,
id: int,
model: DatabaseBase
) -> DatabaseSchema:
db_login = await session.get(Database,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

53
core/crud/servers.py Normal file
View File

@ -0,0 +1,53 @@
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