From 53db20f6273aed397072ec4e211083f6c9790816 Mon Sep 17 00:00:00 2001 From: Scott Idem Date: Tue, 3 Feb 2026 15:37:20 -0500 Subject: [PATCH] fix(data-store): add missing imports and async fixes for V3 code lookup --- app/routers/data_store.py | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/app/routers/data_store.py b/app/routers/data_store.py index 309dee6..0b40f22 100644 --- a/app/routers/data_store.py +++ b/app/routers/data_store.py @@ -2,6 +2,7 @@ import datetime, pytz, time from fastapi import APIRouter, Body, Depends, Header, HTTPException, Path, Query, Response, status from pydantic import BaseModel, EmailStr, Field from typing import Dict, List, Optional, Set, Union +import asyncio from app.lib_general import log, logging, common_route_params, Common_Route_Params from app.config import settings @@ -15,6 +16,9 @@ from app.models.common_field_schema import default_num_bytes from app.models.data_store_models import Data_Store_Base from app.models.response_models import Resp_Body_Base, mk_resp +# V3 Imports +from app.lib_general_v3 import AccountContext, get_account_context, SerializationParams, StatusFilterParams, DelayParams, PaginationParams +from app.models.api_crud_models import SearchFilter, SearchQuery router = APIRouter() @@ -134,8 +138,6 @@ async def get_data_store_obj( # ### BEGIN ### API Data Store ### get_v3_data_store_obj_w_code() ### # NEW V3 Endpoint for Code Lookup # Updated 2026-01-28 -from app.lib_general_v3 import AccountContext, get_account_context, SerializationParams, StatusFilterParams - @router.get('/v3/data_store/code/{data_store_code}', response_model=Resp_Body_Base, tags=['Data Store V3']) async def get_v3_data_store_obj_w_code( data_store_code: str = Path(min_length=3, max_length=50), @@ -195,7 +197,7 @@ async def get_data_store_obj_w_code_path( log.debug(locals()) log.info('Using path parameters') # ### SECTION ### Call generic function to get the data_store object - return handle_get_data_store_obj_w_code( + return await handle_get_data_store_obj_w_code( data_store_code = data_store_code, for_type = for_type, for_id = for_id, @@ -217,7 +219,7 @@ async def get_data_store_obj_w_code_query( log.debug(locals()) log.info('Using query parameters') # ### SECTION ### Call generic function to get the data_store object - return handle_get_data_store_obj_w_code( + return await handle_get_data_store_obj_w_code( data_store_code = data_store_code, for_type = for_type, for_id = for_id, @@ -226,8 +228,6 @@ async def get_data_store_obj_w_code_query( ) -from app.models.api_crud_models import SearchFilter, SearchQuery - @router.post('/v3/data_store/code/{data_store_code}/search', response_model=Resp_Body_Base, tags=['Data Store V3']) async def search_v3_data_store_obj_w_code( data_store_code: str, @@ -272,16 +272,19 @@ async def search_v3_data_store_obj_w_code( return mk_resp(data=sql_result) -def handle_get_data_store_obj_w_code( +async def handle_get_data_store_obj_w_code( data_store_code: str, for_type: Optional[str], for_id: Optional[str], commons: Common_Route_Params, limit: int = 1, + delay: Optional[DelayParams] = None, ): log.setLevel(logging.INFO) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL log.debug(locals()) + if delay and delay.sleep_time_s > 0: await asyncio.sleep(delay.sleep_time_s) + # ### SECTION ### Secondary data validation if for_type and for_id: if for_id := redis_lookup_id_random(record_id_random=for_id, table_name=for_type): pass @@ -354,4 +357,4 @@ async def get_account_obj_data_store_list( else: log.warning('Likely bad request') return mk_resp(data=False, status_code=400, response=commons.response) # Bad Request -# ### END ### API Data Store ### get_account_obj_data_store_list() ### +# ### END ### API Data Store ### get_account_obj_data_store_list() ### \ No newline at end of file