You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
59 lines
1.9 KiB
Python
59 lines
1.9 KiB
Python
|
|
|
|
from sqlalchemy import Select, Delete
|
|
from typing import Optional
|
|
|
|
from .model import ScopeEquipmentActivity
|
|
from .schema import ScopeEquipmentActivityCreate, ScopeEquipmentActivityUpdate
|
|
|
|
from src.database.core import DbSession
|
|
from src.database.service import CommonParameters, search_filter_sort_paginate
|
|
from src.auth.service import CurrentUser
|
|
|
|
|
|
async def get(*, db_session: DbSession, scope_equipment_activity_id: str) -> Optional[ScopeEquipmentActivity]:
|
|
"""Returns a document based on the given document id."""
|
|
result = await db_session.get(ScopeEquipmentActivity, scope_equipment_activity_id)
|
|
return result
|
|
|
|
|
|
async def get_all(common: CommonParameters, assetnum: Optional[str]):
|
|
query = Select(ScopeEquipmentActivity)
|
|
|
|
if assetnum:
|
|
query = query.filter(ScopeEquipmentActivity.assetnum == assetnum)
|
|
|
|
results = await search_filter_sort_paginate(model=query, **common)
|
|
|
|
return results
|
|
|
|
|
|
async def create(*, db_session: DbSession, scope_equipment_activty_in: ScopeEquipmentActivityCreate):
|
|
activity = ScopeEquipmentActivity(
|
|
**scope_equipment_activty_in.model_dump())
|
|
db_session.add(activity)
|
|
await db_session.commit()
|
|
return activity
|
|
|
|
|
|
async def update(*, db_session: DbSession, activity: ScopeEquipmentActivity, scope_equipment_activity_in: ScopeEquipmentActivityUpdate):
|
|
"""Updates a document."""
|
|
data = scope_equipment_activity_in.model_dump()
|
|
|
|
update_data = scope_equipment_activity_in.model_dump(exclude_defaults=True)
|
|
|
|
for field in data:
|
|
if field in update_data:
|
|
setattr(activity, field, update_data[field])
|
|
|
|
await db_session.commit()
|
|
|
|
return activity
|
|
|
|
|
|
async def delete(*, db_session: DbSession, scope_equipment_activity_id: str):
|
|
"""Deletes a document."""
|
|
activity = await db_session.get(ScopeEquipmentActivity, scope_equipment_activity_id)
|
|
await db_session.delete(activity)
|
|
await db_session.commit()
|