Compare commits

..

No commits in common. "7c64938020c03ae37e8089f47e44df447b4c8b98" and "ad7b374fec22cc9e6ec8337cbabccd5c059b91d5" have entirely different histories.

4 changed files with 3 additions and 64 deletions

View File

@ -4,10 +4,9 @@ from sqlalchemy.ext.asyncio import AsyncSession
from src.services.expense_item_service import ExpenseItemService from src.services.expense_item_service import ExpenseItemService
from src.db.models.app_user import AppUser from src.db.models.app_user import AppUser
from src.api.v1.deps import require_admin, require_executor from src.api.v1.deps import require_admin
from src.db.session import get_db from src.db.session import get_db
from src.domain.schemas import ( from src.domain.schemas import (
BaseListResponse,
BaseSingleResponse, BaseSingleResponse,
ExpenseItemResponseSchema, ExpenseItemResponseSchema,
) )
@ -34,20 +33,3 @@ async def get_expense_item_by_id(
message="Запись Expense Item", message="Запись Expense Item",
result=ExpenseItemResponseSchema.model_validate(result), result=ExpenseItemResponseSchema.model_validate(result),
) )
@router.get("/", response_model=BaseListResponse[ExpenseItemResponseSchema])
async def get_expense_item_by_id(
db: AsyncSession = Depends(get_db),
current_user: AppUser = Depends(require_executor),
r_start: bool | None = None,
):
"""Получение записей expense item"""
service = ExpenseItemService(db)
result = await service.get_list(r_start=r_start)
return BaseListResponse(
success=True,
message="Запись Expense Item",
result=[ExpenseItemResponseSchema.model_validate(el) for el in result],
)

View File

@ -11,11 +11,3 @@ class ExpenseItemRepository:
async def get(self, item_id: int) -> ExpenseItem | None: async def get(self, item_id: int) -> ExpenseItem | None:
query = select(ExpenseItem).where(ExpenseItem.id == item_id).limit(1) query = select(ExpenseItem).where(ExpenseItem.id == item_id).limit(1)
return (await self.db.execute(query)).scalar_one_or_none() return (await self.db.execute(query)).scalar_one_or_none()
async def get_list(self, r_start: bool | None = None) -> list[ExpenseItem]:
where = []
if r_start is not None:
where.append(ExpenseItem.item_id.startswith("R"))
query = select(ExpenseItem).where(*where)
return (await self.db.execute(query)).scalars().all()

View File

@ -10,17 +10,7 @@ class ExpenseItemService:
def __init__(self, db: AsyncSession): def __init__(self, db: AsyncSession):
self.repo = ExpenseItemRepository(db) self.repo = ExpenseItemRepository(db)
async def get( async def get(self, item_id: int, user: AppUser | None = None) -> ExpenseItem | None:
self,
item_id: int,
user: AppUser | None = None,
) -> ExpenseItem | None:
if not user or user.role_id == UserRoleEnum.ADMIN: if not user or user.role_id == UserRoleEnum.ADMIN:
return await self.repo.get(item_id=item_id) return await self.repo.get(item_id=item_id)
return None return None
async def get_list(
self,
r_start: bool | None = None,
) -> list[ExpenseItem]:
return await self.repo.get_list(r_start=r_start)

View File

@ -30,28 +30,3 @@ def test_expense_item_get_executor(client, isp_tokens, auth_headers):
headers=auth_headers(isp_tokens), headers=auth_headers(isp_tokens),
) )
assert response.status_code == 403 assert response.status_code == 403
def test_expense_item_list(client, isp_tokens, auth_headers):
response = client.get(
"/api/v1/expense-item/",
headers=auth_headers(isp_tokens),
)
assert response.status_code == 200
result = response.json()
assert result["success"] is True
assert isinstance(result["result"], list)
assert len(result["result"]) != 0
def test_expense_item_list_r_start(client, isp_tokens, auth_headers):
response = client.get(
"/api/v1/expense-item/?r_start=true",
headers=auth_headers(isp_tokens),
)
assert response.status_code == 200
result = response.json()
assert result["success"] is True
assert isinstance(result["result"], list)
assert len(result["result"]) != 0
assert all([el["item_id"].startswith("R") for el in result["result"]])