Adding Manufacturers and ScopeModels
This commit is contained in:
1 parent
9111117404
commit
b7ad517174
24 files changed
+822
-2
No files matched your search
@@ -0,0 +1,44 @@
|
||||
from sqlalchemy import select
|
||||
from sqlalchemy.ext.asyncio import AsyncSession
|
||||
|
||||
from app.models.scope_model import ScopeModel
|
||||
|
||||
|
||||
async def get(db: AsyncSession, scope_model_id: int) -> ScopeModel | None:
|
||||
return await db.get(ScopeModel, scope_model_id)
|
||||
|
||||
|
||||
async def list_all(
|
||||
db: AsyncSession, skip: int = 0, limit: int = 100
|
||||
) -> list[ScopeModel]:
|
||||
result = await db.execute(
|
||||
select(ScopeModel).order_by(ScopeModel.name).offset(skip).limit(limit)
|
||||
)
|
||||
return list(result.scalars().all())
|
||||
|
||||
|
||||
async def create(
|
||||
db: AsyncSession,
|
||||
*,
|
||||
name: str,
|
||||
manufacturer_id: int,
|
||||
url: str | None = None,
|
||||
) -> ScopeModel:
|
||||
sm = ScopeModel(name=name, manufacturer_id=manufacturer_id, url=url)
|
||||
db.add(sm)
|
||||
await db.commit()
|
||||
await db.refresh(sm, attribute_names=["manufacturer"])
|
||||
return sm
|
||||
|
||||
|
||||
async def update(db: AsyncSession, scope_model: ScopeModel, data: dict) -> ScopeModel:
|
||||
for field, value in data.items():
|
||||
setattr(scope_model, field, value)
|
||||
await db.commit()
|
||||
await db.refresh(scope_model, attribute_names=["manufacturer"])
|
||||
return scope_model
|
||||
|
||||
|
||||
async def delete(db: AsyncSession, scope_model: ScopeModel) -> None:
|
||||
await db.delete(scope_model)
|
||||
await db.commit()
|
||||
Reference in new issue
Block a user