fix endpoint to get all available scope equip

feature/reliability_stat
Cizz22 1 year ago
parent 6c9614b187
commit 2d8b0bb517

@ -35,9 +35,9 @@ async def get_scope_name(db_session: DbSession, scope_name: str, exclude: bool =
return StandardResponse(data=await get_by_scope_name(db_session=db_session, scope_name=scope_name), message="Data retrieved successfully")
@router.get("/master", response_model=StandardResponse[MasterEquipmentPagination])
async def get_master_equipment(db_session: DbSession, common: CommonParameters, exclude: Optional[str] = Query(None)):
results = await get_all_master_equipment(db_session=db_session, common=common, exclude=exclude)
@router.get("/available/{scope_name}", response_model=StandardResponse[MasterEquipmentPagination])
async def get_master_equipment(db_session: DbSession, common: CommonParameters, scope_name: str):
results = await get_all_master_equipment(db_session=db_session, common=common, exclude=scope_name)
return StandardResponse(data=results, message="Data retrieved successfully")

@ -1,7 +1,7 @@
from fastapi import HTTPException, status
from sqlalchemy import Select, Delete, desc, func, not_, insert
from sqlalchemy import Select, Delete, desc, func, not_, insert, or_
from src.workorder.model import MasterWorkOrder
from .model import ScopeEquipment, MasterEquipment
@ -89,9 +89,24 @@ async def update(*, db_session: DbSession, scope_equipment: ScopeEquipment, scop
async def delete(*, db_session: DbSession, scope_equipment_id: str):
"""Deletes a document."""
query = Delete(ScopeEquipment).where(
# query = Delete(ScopeEquipment).where(
# ScopeEquipment.id == scope_equipment_id)
# await db_session.execute(query)
# await db_session.commit()
query = Select(ScopeEquipment).filter(
ScopeEquipment.id == scope_equipment_id)
await db_session.execute(query)
scope_equipment = await db_session.execute(query)
scope_equipment = scope_equipment.scalars().one_or_none()
if not scope_equipment:
raise HTTPException(
status_code=status.HTTP_404_NOT_FOUND,
detail="A data with this id does not exist.",
)
scope_equipment.scope_id = None
await db_session.commit()
@ -126,9 +141,15 @@ async def get_exculed_scope_name(*, db_session: DbSession, scope_name: Union[str
async def get_all_master_equipment(*, db_session: DbSession, exclude: Optional[str] = None, common: CommonParameters):
query = Select(MasterEquipment).filter(MasterEquipment.assetnum != None)
query = query.outerjoin(
ScopeEquipment, MasterEquipment.assetnum == ScopeEquipment.assetnum)
if exclude:
query = query.filter(
not_(MasterEquipment.location_tag.op("~")(f"{exclude.capitalize()}$")))
not_(MasterEquipment.location_tag.op('~')('A$')) | (ScopeEquipment.scope_id.is_(None))
)
else:
query = query.filter(ScopeEquipment.scope_id.is_(None))
results = await search_filter_sort_paginate(model=query, **common)
return results

Loading…
Cancel
Save