1515class ChatEngineRepo (BaseRepo ):
1616 model_cls = ChatEngine
1717
18- def get (self , session : Session , id : int ) -> Optional [ChatEngine ]:
19- return session .exec (
20- select (ChatEngine ).where (ChatEngine .id == id , ChatEngine .deleted_at == None )
21- ).first ()
18+ def get (
19+ self , session : Session , id : int , need_public : bool = False
20+ ) -> Optional [ChatEngine ]:
21+ query = select (ChatEngine ).where (
22+ ChatEngine .id == id , ChatEngine .deleted_at == None
23+ )
24+ if need_public :
25+ query = query .where (ChatEngine .is_public == True )
26+ return session .exec (query ).first ()
2227
23- def must_get (self , session : Session , id : int ) -> ChatEngine :
24- chat_engine = self .get (session , id )
28+ def must_get (
29+ self , session : Session , id : int , need_public : bool = False
30+ ) -> ChatEngine :
31+ chat_engine = self .get (session , id , need_public )
2532 if chat_engine is None :
2633 raise ChatEngineNotFound (id )
2734 return chat_engine
@@ -30,8 +37,11 @@ def paginate(
3037 self ,
3138 session : Session ,
3239 params : Params | None = Params (),
40+ need_public : bool = False ,
3341 ) -> Page [ChatEngine ]:
3442 query = select (ChatEngine ).where (ChatEngine .deleted_at == None )
43+ if need_public :
44+ query = query .where (ChatEngine .is_public == True )
3545 # Make sure the default engine is always on top
3646 query = query .order_by (ChatEngine .is_default .desc (), ChatEngine .name )
3747 return paginate (session , query , params )
0 commit comments