diff --git a/litellm/proxy/spend_tracking/spend_management_endpoints.py b/litellm/proxy/spend_tracking/spend_management_endpoints.py index 7d67cbd3630..5df90918562 100644 --- a/litellm/proxy/spend_tracking/spend_management_endpoints.py +++ b/litellm/proxy/spend_tracking/spend_management_endpoints.py @@ -2298,9 +2298,9 @@ async def view_spend_logs( # noqa: PLR0915 if api_key is not None and isinstance(api_key, str): filter_query["api_key"] = api_key # type: ignore - elif request_id is not None and isinstance(request_id, str): + if request_id is not None and isinstance(request_id, str): filter_query["request_id"] = request_id # type: ignore - elif user_id is not None and isinstance(user_id, str): + if user_id is not None and isinstance(user_id, str): filter_query["user"] = user_id # type: ignore # Check if user wants unsummarized data @@ -2375,49 +2375,30 @@ async def view_spend_logs( # noqa: PLR0915 return response - elif api_key is not None and isinstance(api_key, str): - if api_key.startswith("sk-"): - hashed_token = prisma_client.hash_token(token=api_key) - else: - hashed_token = api_key - spend_log = await prisma_client.get_data( - table_name="spend", - query_type="find_all", - key_val={"key": "api_key", "value": hashed_token}, - ) - if spend_log is None: - return [] - if isinstance(spend_log, list): - return spend_log - else: - return [spend_log] - elif request_id is not None: - spend_log = await prisma_client.get_data( - table_name="spend", - query_type="find_unique", - key_val={"key": "request_id", "value": request_id}, - ) - if spend_log is None: - return [] - return [spend_log] - elif user_id is not None: - spend_log = await prisma_client.get_data( - table_name="spend", - query_type="find_all", - key_val={"key": "user", "value": user_id}, - ) - if spend_log is None: - return [] - if isinstance(spend_log, list): - return spend_log - else: - return [spend_log] else: - spend_logs = await prisma_client.get_data( - table_name="spend", query_type="find_all" - ) + filter_query: Dict[str, Any] = {} + if api_key is not None and isinstance(api_key, str): + if api_key.startswith("sk-"): + hashed_token = prisma_client.hash_token(token=api_key) + else: + hashed_token = api_key + filter_query["api_key"] = hashed_token + if request_id is not None and isinstance(request_id, str): + filter_query["request_id"] = request_id + if user_id is not None and isinstance(user_id, str): + filter_query["user"] = user_id - return spend_logs + if not filter_query: + spend_logs = await prisma_client.get_data( + table_name="spend", query_type="find_all" + ) + return spend_logs + + data = await prisma_client.db.litellm_spendlogs.find_many( + where=filter_query, # type: ignore + order={"startTime": "desc"}, + ) + return data return None