Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remove validation_results from get_submissions endpoint #564

Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 7 additions & 2 deletions src/sbl_filing_api/entities/models/dto.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,21 +14,26 @@ class UserActionDTO(BaseModel):
action_type: UserActionType


class SubmissionDTO(BaseModel):
class SubmissionBaseDTO(BaseModel):
model_config = ConfigDict(from_attributes=True)

id: int | None = None
counter: int
state: SubmissionState | None = None
validation_ruleset_version: str | None = None
validation_results: Dict[str, Any] | None = None
submission_time: datetime | None = None
filename: str
total_records: int | None = None
submitter: UserActionDTO
accepter: UserActionDTO | None = None


class SubmissionDTO(SubmissionBaseDTO):
model_config = ConfigDict(from_attributes=True)

validation_results: Dict[str, Any] | None = None


class FilingTaskDTO(BaseModel):
model_config = ConfigDict(from_attributes=True)

Expand Down
9 changes: 7 additions & 2 deletions src/sbl_filing_api/entities/repos/submission_repo.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import logging

from sqlalchemy import select, desc
from sqlalchemy.orm import defer, QueryableAttribute
from sqlalchemy.ext.asyncio import AsyncSession
from typing import Any, List, TypeVar
from sbl_filing_api.entities.engine.engine import SessionLocal
Expand Down Expand Up @@ -36,7 +37,7 @@ async def get_submissions(session: AsyncSession, lei: str = None, filing_period:
if lei and filing_period:
filing = await get_filing(session, lei=lei, filing_period=filing_period)
filing_id = filing.id
return await query_helper(session, SubmissionDAO, filing=filing_id)
return await query_helper(session, SubmissionDAO, defers=[SubmissionDAO.validation_results], filing=filing_id)


async def get_latest_submission(session: AsyncSession, lei: str, filing_period: str) -> SubmissionDAO | None:
Expand Down Expand Up @@ -190,8 +191,12 @@ async def upsert_helper(session: AsyncSession, original_data: Any, table_obj: T)
return new_dao


async def query_helper(session: AsyncSession, table_obj: T, **filter_args) -> List[T]:
async def query_helper(
session: AsyncSession, table_obj: T, *, defers: List[QueryableAttribute] | None = None, **filter_args
) -> List[T]:
stmt = select(table_obj)
if defers:
stmt = stmt.options(defer(*defers))
# remove empty args
filter_args = {k: v for k, v in filter_args.items() if v is not None}
if filter_args:
Expand Down
3 changes: 2 additions & 1 deletion src/sbl_filing_api/routers/filing.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@
SubmissionState,
UserActionDTO,
VoluntaryUpdateDTO,
SubmissionBaseDTO,
)

from sbl_filing_api.entities.repos import submission_repo as repo
Expand Down Expand Up @@ -218,7 +219,7 @@ async def upload_file(request: Request, lei: str, period_code: str, file: Upload
) from e


@router.get("/institutions/{lei}/filings/{period_code}/submissions", response_model=List[SubmissionDTO])
@router.get("/institutions/{lei}/filings/{period_code}/submissions", response_model=List[SubmissionBaseDTO])
@requires("authenticated")
async def get_submissions(request: Request, lei: str, period_code: str):
return await repo.get_submissions(request.state.db_session, lei, period_code)
Expand Down
Loading