id новой строки в ответе при вставке в вебсокетах
This commit is contained in:
parent
3f6d59ba06
commit
5f5ed32cd8
@ -11,6 +11,7 @@ from sqlalchemy.exc import IntegrityError
|
|||||||
from fastapi import APIRouter, WebSocket, WebSocketDisconnect, status
|
from fastapi import APIRouter, WebSocket, WebSocketDisconnect, status
|
||||||
from sqlalchemy.ext.asyncio import AsyncSession
|
from sqlalchemy.ext.asyncio import AsyncSession
|
||||||
|
|
||||||
|
from src.services.budget_line_service import BudgetLineService
|
||||||
from src.api.v1.deps import get_user_by_token
|
from src.api.v1.deps import get_user_by_token
|
||||||
from src.db.models.app_user import AppUser
|
from src.db.models.app_user import AppUser
|
||||||
from src.db.models.form_type import FormTypeEnum
|
from src.db.models.form_type import FormTypeEnum
|
||||||
@ -186,6 +187,7 @@ class FormEventProcess:
|
|||||||
def __init__(self, db: AsyncSession):
|
def __init__(self, db: AsyncSession):
|
||||||
self.sheet_service: SheetService = SheetService(db)
|
self.sheet_service: SheetService = SheetService(db)
|
||||||
self.bf_service: BudgetFormService = BudgetFormService(db)
|
self.bf_service: BudgetFormService = BudgetFormService(db)
|
||||||
|
self.bl_service: BudgetLineService = BudgetLineService(db)
|
||||||
self.user_service: UserService = UserService(db)
|
self.user_service: UserService = UserService(db)
|
||||||
|
|
||||||
|
|
||||||
@ -283,7 +285,8 @@ class FormEventProcess:
|
|||||||
if not form:
|
if not form:
|
||||||
return None
|
return None
|
||||||
|
|
||||||
return await self.sheet_service.add_line(
|
ids = await self.bl_service.get_ids(budget_form_id=form_id)
|
||||||
|
result = await self.sheet_service.add_line(
|
||||||
form_id=form_id,
|
form_id=form_id,
|
||||||
sheet=sheet,
|
sheet=sheet,
|
||||||
expense_item_id=event_data.get("expense_item_id"),
|
expense_item_id=event_data.get("expense_item_id"),
|
||||||
@ -299,6 +302,16 @@ class FormEventProcess:
|
|||||||
contract_end_date=event_data.get("contract_end_date"),
|
contract_end_date=event_data.get("contract_end_date"),
|
||||||
user=user,
|
user=user,
|
||||||
)
|
)
|
||||||
|
final_result = {
|
||||||
|
"data": result,
|
||||||
|
"new_line_id": None,
|
||||||
|
}
|
||||||
|
for el in result:
|
||||||
|
if el[3]["line_id"] and el[3]["line_id"] not in ids:
|
||||||
|
final_result["new_line_id"] = el[3]["line_id"]
|
||||||
|
return final_result
|
||||||
|
return final_result
|
||||||
|
|
||||||
|
|
||||||
async def __del_row(
|
async def __del_row(
|
||||||
self,
|
self,
|
||||||
|
|||||||
@ -15,3 +15,12 @@ class BudgetLineRepository:
|
|||||||
async def get_list(self, budget_line_ids: list[int]) -> BudgetLine | None:
|
async def get_list(self, budget_line_ids: list[int]) -> BudgetLine | None:
|
||||||
query = select(BudgetLine).where(BudgetLine.id.in_(budget_line_ids))
|
query = select(BudgetLine).where(BudgetLine.id.in_(budget_line_ids))
|
||||||
return (await self.db.execute(query)).scalars().all()
|
return (await self.db.execute(query)).scalars().all()
|
||||||
|
|
||||||
|
async def get_ids(
|
||||||
|
self,
|
||||||
|
budget_form_id: int,
|
||||||
|
) -> list[int]:
|
||||||
|
|
||||||
|
query = select(BudgetLine.id).where(BudgetLine.budget_form_id == budget_form_id)
|
||||||
|
return (await self.db.execute(query)).scalars().all()
|
||||||
|
|
||||||
|
|||||||
@ -26,3 +26,10 @@ class BudgetLineService:
|
|||||||
budget_line_ids: list[int],
|
budget_line_ids: list[int],
|
||||||
) -> list[BudgetLine]:
|
) -> list[BudgetLine]:
|
||||||
return await self.bl_repo.get_list(budget_line_ids=budget_line_ids)
|
return await self.bl_repo.get_list(budget_line_ids=budget_line_ids)
|
||||||
|
|
||||||
|
async def get_ids(
|
||||||
|
self,
|
||||||
|
budget_form_id: int,
|
||||||
|
) -> list[int]:
|
||||||
|
return await self.bl_repo.get_ids(budget_form_id=budget_form_id)
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user