diff --git a/app/methods/order_methods.py b/app/methods/order_methods.py index 76c7138..37d9beb 100644 --- a/app/methods/order_methods.py +++ b/app/methods/order_methods.py @@ -314,7 +314,7 @@ def get_order_rec_list( sql_status = '' else: log.warning('The status value passed is not allowed. Returning None') - return None + return False # if enabled in ['enabled', 'disabled', 'all']: # if enabled == 'enabled': @@ -347,7 +347,7 @@ def get_order_rec_list( if order_rec_li_result := sql_select(data=data, sql=sql, as_list=True): order_rec_li = order_rec_li_result else: - order_rec_li = [] + order_rec_li = None log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL log.debug(order_rec_li_result) diff --git a/app/routers/order.py b/app/routers/order.py index dccc6ee..98f0b25 100644 --- a/app/routers/order.py +++ b/app/routers/order.py @@ -210,6 +210,72 @@ async def get_order_obj( # ### END ### API Order Routes ### get_order_obj() ### +# ### BEGIN ### API Order ### get_account_obj_order_list() ### +# Updated 2021-11-19 +@router.get('/{obj_type}/{obj_id}/order/list', response_model=Resp_Body_Base) +async def get_obj_id_order_list( + obj_type: str = Query(..., min_length=4, max_length=25), # Expects account or person + obj_id: str = Query(..., min_length=11, max_length=22), + from_datetime: datetime.datetime = None, + to_datetime: datetime.datetime = None, + inc_order_cfg: bool = False, + inc_order_line_list: bool = False, + # inc_order_w_prod_type: str = 'all', # all, membership, fundraising, event, etc + status: str = 'closed', # open, locked, reopened?, closed (complete), canceled, other + enabled: str = 'enabled', + limit: int = 50, + x_account_id: str = Header(..., min_length=11, max_length=22), + by_alias: Optional[bool] = True, + exclude_unset: Optional[bool] = True, + response: Response = Response, + ): + log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL + log.debug(locals()) + + if obj_type in ['account', 'person']: + if obj_id := redis_lookup_id_random(record_id_random=obj_id, table_name=obj_type): pass + else: return mk_resp(data=None, status_code=404, response=response) + else: + log.warning('Likely bad request') + return mk_resp(data=False, status_code=400, response=response) # Bad Request + + # Updated 2021-06-28 + if order_rec_list_result := get_order_rec_list( + for_obj_type = obj_type, + for_obj_id = obj_id, + limit = limit, + enabled = enabled, + from_datetime = from_datetime, + to_datetime = to_datetime, + status = status, + ): + order_result_list = [] + for order_rec in order_rec_list_result: + if load_order_result := load_order_obj( + order_id = order_rec.get('order_id', None), + limit = limit, + enabled = enabled, + by_alias = by_alias, + exclude_unset = exclude_unset, + # model_as_dict = model_as_dict, + inc_order_cfg = inc_order_cfg, + inc_order_line_list = inc_order_line_list, + ): + order_result_list.append(load_order_result) + else: + order_result_list.append(None) + response_data = order_result_list + elif order_rec_list_result is None: + log.info('No results') + return mk_resp(data=None, status_code=404, response=response) # Not Found + else: + log.warning('Likely bad request') + return mk_resp(data=False, status_code=400, response=response) # Bad Request + + return mk_resp(data=response_data) +# ### END ### API Order ### get_account_obj_order_list() ### + + # ### BEGIN ### API Order ### get_account_obj_order_list() ### # Updated 2021-11-19 @router.get('/account/{account_id}/order/list', response_model=Resp_Body_Base)