File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 2626# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
2727# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
2828
29- from fastapi import APIRouter
29+ from fastapi import APIRouter , Query , Depends
3030from starlette .responses import JSONResponse
3131
3232from chat_server .utils .enums import RequestModelType , UserRoles
4848 PersonaData ,
4949)
5050from chat_server .utils .api_dependencies .validators import permitted_access
51+ from chat_server .utils .api_dependencies .direct_query import list_personas_query
5152from klatchat_utils .database_utils .mongo_utils import MongoFilter , MongoLogicalOperators
5253from klatchat_utils .database_utils .mongo_utils .queries .wrapper import MongoDocumentsAPI
5354
6061@router .get ("/list" )
6162async def list_personas (
6263 current_user : CurrentUserData ,
63- request_model : ListPersonasQueryModel = permitted_access ( ListPersonasQueryModel ),
64+ request_model : ListPersonasQueryModel = Depends ( list_personas_query ),
6465) -> JSONResponse :
6566 """Lists personas matching query params"""
6667 filters = []
Original file line number Diff line number Diff line change 1+ """
2+ Direct query parameter handling for FastAPI endpoints.
3+ """
4+
5+ from fastapi import Query
6+ from typing import Optional , Type , List
7+ from pydantic import BaseModel
8+
9+ from chat_server .utils .api_dependencies .models import ListPersonasQueryModel
10+
11+
12+ def list_personas_query (
13+ llms : Optional [List [str ]] = Query (None ),
14+ user_id : Optional [str ] = Query (None ),
15+ only_enabled : bool = Query (False ),
16+ ) -> ListPersonasQueryModel :
17+ """
18+ Creates a ListPersonasQueryModel from direct query parameters.
19+ This avoids the issue with FastAPI's dependency injection system.
20+ """
21+ return ListPersonasQueryModel (llms = llms , user_id = user_id , only_enabled = only_enabled )
Original file line number Diff line number Diff line change 2828
2929from fastapi import Query
3030from pydantic import Field , computed_field , BaseModel
31+ from typing import Optional
3132
3233
3334class PersonaModel (BaseModel ):
@@ -84,6 +85,6 @@ class TogglePersonaStatusModel(PersonaModel):
8485
8586
8687class ListPersonasQueryModel (BaseModel ):
87- llms : list [str ] | None = Field (Query ( default = None ) , examples = [["doctor" ]])
88- user_id : str | None = Field (Query ( default = None ) , examples = ["test_user_id" ])
89- only_enabled : bool = Field (Query ( default = False ) , examples = [True , False ])
88+ llms : list [str ] | None = Field (default = None , examples = [["doctor" ]])
89+ user_id : str | None = Field (default = None , examples = ["test_user_id" ])
90+ only_enabled : bool = Field (default = False , examples = [True , False ])
You can’t perform that action at this time.
0 commit comments