Add customer code to get_single_case_route
Taylor committed
Jan 29, 2024 at 13:05 UTC
55cb7c043a7e421de26ba12c09c7603d144dc309
3 files changed
+5
-3
backend/app/connectors/dfir_iris/routes/cases.py
+2
-2
@@ -152,7 +152,7 @@ async def purge_single_case_route(case_id: int = Depends(verify_case_exists)) ->
152
description="Get a single case",
153
dependencies=[Security(AuthHandler().require_any_scope("admin", "analyst"))],
154
)
155
-async def get_single_case_route(case_id: int = Depends(verify_case_exists)) -> SingleCaseResponse:
155
+async def get_single_case_route(case_id: int = Depends(verify_case_exists), session: AsyncSession = Depends(get_db)) -> SingleCaseResponse:
156
"""
157
Retrieve a single case by its ID.
158
@@ -164,7 +164,7 @@ async def get_single_case_route(case_id: int = Depends(verify_case_exists)) -> S
164
"""
165
logger.info(f"Fetching case {case_id}")
166
single_case_body = SingleCaseBody(case_id=case_id)
167
- return await get_single_case(single_case_body.case_id)
167
+ return await get_single_case(single_case_body.case_id, session=session)
168
169
170
@dfir_iris_cases_router.put(
backend/app/connectors/dfir_iris/schema/cases.py
+1
@@ -75,6 +75,7 @@ class SingleCaseModel(BaseModel):
75
state_name: str
76
status_id: int
77
status_name: str
78
+ customer_code: str
79
80
81
class SingleCaseBody(BaseModel):
backend/app/connectors/dfir_iris/services/cases.py
+2
-1
@@ -146,7 +146,7 @@ async def get_cases_older_than(case_older_than_body: CaseOlderThanBody) -> Cases
146
)
147
148
149
-async def get_single_case(case_id: SingleCaseBody) -> SingleCaseResponse:
149
+async def get_single_case(case_id: SingleCaseBody, session: AsyncSession) -> SingleCaseResponse:
150
"""
151
Fetches a single case from DFIR-IRIS based on the provided case ID.
152
@@ -162,6 +162,7 @@ async def get_single_case(case_id: SingleCaseBody) -> SingleCaseResponse:
162
dfir_iris_client = await create_dfir_iris_client("DFIR-IRIS")
163
case = Case(session=dfir_iris_client)
164
result = await fetch_and_parse_data(dfir_iris_client, case.get_case, case_id)
165
+ result["data"]["customer_code"] = await get_customer_code(session, result["data"]["customer_name"])
166
return SingleCaseResponse(success=True, message="Successfully fetched single case", case=result["data"])
167
168