Adding Attachment Points
This commit is contained in:
1 parent
2767fb1c8e
commit
ceae27a12e
15 files changed
+729
-3
No files matched your search
@@ -0,0 +1,67 @@
|
||||
from sqlalchemy import select
|
||||
from sqlalchemy.ext.asyncio import AsyncSession
|
||||
|
||||
from app.models.attachment_point import AttachmentPoint
|
||||
|
||||
_RELATIONSHIPS = [
|
||||
"attachment_point_name",
|
||||
"iso_thread",
|
||||
"unc_thread",
|
||||
"clamp_connection",
|
||||
"static_connection",
|
||||
]
|
||||
|
||||
|
||||
async def get(db: AsyncSession, attachment_point_id: int) -> AttachmentPoint | None:
|
||||
return await db.get(AttachmentPoint, attachment_point_id)
|
||||
|
||||
|
||||
async def list_all(
|
||||
db: AsyncSession, skip: int = 0, limit: int = 100
|
||||
) -> list[AttachmentPoint]:
|
||||
result = await db.execute(
|
||||
select(AttachmentPoint)
|
||||
.order_by(AttachmentPoint.augmented_part_id, AttachmentPoint.id)
|
||||
.offset(skip)
|
||||
.limit(limit)
|
||||
)
|
||||
return list(result.scalars().all())
|
||||
|
||||
|
||||
async def create(
|
||||
db: AsyncSession,
|
||||
*,
|
||||
augmented_part_id: int,
|
||||
attachment_point_name_id: int,
|
||||
iso_thread_id: int | None = None,
|
||||
unc_thread_id: int | None = None,
|
||||
clamp_connection_id: int | None = None,
|
||||
static_connection_id: int | None = None,
|
||||
) -> AttachmentPoint:
|
||||
ap = AttachmentPoint(
|
||||
augmented_part_id=augmented_part_id,
|
||||
attachment_point_name_id=attachment_point_name_id,
|
||||
iso_thread_id=iso_thread_id,
|
||||
unc_thread_id=unc_thread_id,
|
||||
clamp_connection_id=clamp_connection_id,
|
||||
static_connection_id=static_connection_id,
|
||||
)
|
||||
db.add(ap)
|
||||
await db.commit()
|
||||
await db.refresh(ap, attribute_names=_RELATIONSHIPS)
|
||||
return ap
|
||||
|
||||
|
||||
async def update(
|
||||
db: AsyncSession, ap: AttachmentPoint, data: dict
|
||||
) -> AttachmentPoint:
|
||||
for field, value in data.items():
|
||||
setattr(ap, field, value)
|
||||
await db.commit()
|
||||
await db.refresh(ap, attribute_names=_RELATIONSHIPS)
|
||||
return ap
|
||||
|
||||
|
||||
async def delete(db: AsyncSession, ap: AttachmentPoint) -> None:
|
||||
await db.delete(ap)
|
||||
await db.commit()
|
||||
Reference in new issue
Block a user