fix(data-store): add missing imports and async fixes for V3 code lookup

This commit is contained in:
Scott Idem
2026-02-03 15:37:20 -05:00
parent 54d6bd8864
commit 53db20f627

View File

@@ -2,6 +2,7 @@ import datetime, pytz, time
from fastapi import APIRouter, Body, Depends, Header, HTTPException, Path, Query, Response, status from fastapi import APIRouter, Body, Depends, Header, HTTPException, Path, Query, Response, status
from pydantic import BaseModel, EmailStr, Field from pydantic import BaseModel, EmailStr, Field
from typing import Dict, List, Optional, Set, Union 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.lib_general import log, logging, common_route_params, Common_Route_Params
from app.config import settings 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.data_store_models import Data_Store_Base
from app.models.response_models import Resp_Body_Base, mk_resp 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() router = APIRouter()
@@ -134,8 +138,6 @@ async def get_data_store_obj(
# ### BEGIN ### API Data Store ### get_v3_data_store_obj_w_code() ### # ### BEGIN ### API Data Store ### get_v3_data_store_obj_w_code() ###
# NEW V3 Endpoint for Code Lookup # NEW V3 Endpoint for Code Lookup
# Updated 2026-01-28 # 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']) @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( async def get_v3_data_store_obj_w_code(
data_store_code: str = Path(min_length=3, max_length=50), 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.debug(locals())
log.info('Using path parameters') log.info('Using path parameters')
# ### SECTION ### Call generic function to get the data_store object # ### 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, data_store_code = data_store_code,
for_type = for_type, for_type = for_type,
for_id = for_id, for_id = for_id,
@@ -217,7 +219,7 @@ async def get_data_store_obj_w_code_query(
log.debug(locals()) log.debug(locals())
log.info('Using query parameters') log.info('Using query parameters')
# ### SECTION ### Call generic function to get the data_store object # ### 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, data_store_code = data_store_code,
for_type = for_type, for_type = for_type,
for_id = for_id, 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']) @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( async def search_v3_data_store_obj_w_code(
data_store_code: str, data_store_code: str,
@@ -272,16 +272,19 @@ async def search_v3_data_store_obj_w_code(
return mk_resp(data=sql_result) 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, data_store_code: str,
for_type: Optional[str], for_type: Optional[str],
for_id: Optional[str], for_id: Optional[str],
commons: Common_Route_Params, commons: Common_Route_Params,
limit: int = 1, limit: int = 1,
delay: Optional[DelayParams] = None,
): ):
log.setLevel(logging.INFO) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL log.setLevel(logging.INFO) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
log.debug(locals()) log.debug(locals())
if delay and delay.sleep_time_s > 0: await asyncio.sleep(delay.sleep_time_s)
# ### SECTION ### Secondary data validation # ### SECTION ### Secondary data validation
if for_type and for_id: if for_type and for_id:
if for_id := redis_lookup_id_random(record_id_random=for_id, table_name=for_type): pass 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: else:
log.warning('Likely bad request') log.warning('Likely bad request')
return mk_resp(data=False, status_code=400, response=commons.response) # 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() ###