Добавлены базы и роуты для Серверов и Баз Данных
This commit is contained in:
0
core/crud/__init__.py
Normal file
0
core/crud/__init__.py
Normal file
53
core/crud/databases.py
Normal file
53
core/crud/databases.py
Normal 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
53
core/crud/servers.py
Normal 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
|
Reference in New Issue
Block a user