@@ -104,9 +104,9 @@ async def __aexecute_query(self, query, params=None):
104104 await conn .execute (text (query ), params )
105105 await conn .commit ()
106106
107- async def __afetch_query (self , query ):
107+ async def __afetch_query (self , query , params = None ):
108108 async with self ._engine .connect () as conn :
109- result = await conn .execute (text (query ))
109+ result = await conn .execute (text (query ), params )
110110 result_map = result .mappings ()
111111 results = result_map .fetchall ()
112112 await conn .commit ()
@@ -128,8 +128,9 @@ async def aset_messages(self, key: str, messages: List[ChatMessage]) -> None:
128128 None
129129
130130 """
131- query = f"""DELETE FROM "{ self ._schema_name } "."{ self ._table_name } " WHERE key = '{ key } '; """
132- await self .__aexecute_query (query )
131+ delete_query = f"""DELETE FROM "{ self ._schema_name } "."{ self ._table_name } " WHERE key = :key; """
132+ delete_params = {"key" : key }
133+ await self .__aexecute_query (delete_query , delete_params )
133134 insert_query = f"""
134135 INSERT INTO "{ self ._schema_name } "."{ self ._table_name } " (key, message)
135136 VALUES (:key, :message);"""
@@ -154,8 +155,9 @@ async def aget_messages(self, key: str) -> List[ChatMessage]:
154155 List[ChatMessage]: A list of `ChatMessage` objects associated with the provided key.
155156 If no messages are found, an empty list is returned.
156157 """
157- query = f"""SELECT message from "{ self ._schema_name } "."{ self ._table_name } " WHERE key = '{ key } ' ORDER BY id;"""
158- results = await self .__afetch_query (query )
158+ query = f"""SELECT message from "{ self ._schema_name } "."{ self ._table_name } " WHERE key = :key ORDER BY id;"""
159+ params = {"key" : key }
160+ results = await self .__afetch_query (query , params )
159161 if results :
160162 return [
161163 ChatMessage .model_validate (result .get ("message" )) for result in results
@@ -189,8 +191,9 @@ async def adelete_messages(self, key: str) -> Optional[List[ChatMessage]]:
189191 Optional[List[ChatMessage]]: A list of `ChatMessage` objects that were deleted, or `None` if no messages
190192 were associated with the key or could be deleted.
191193 """
192- query = f"""DELETE FROM "{ self ._schema_name } "."{ self ._table_name } " WHERE key = '{ key } ' RETURNING *; """
193- results = await self .__afetch_query (query )
194+ query = f"""DELETE FROM "{ self ._schema_name } "."{ self ._table_name } " WHERE key = :key RETURNING *; """
195+ params = {"key" : key }
196+ results = await self .__afetch_query (query , params )
194197 if results :
195198 return [
196199 ChatMessage .model_validate (result .get ("message" )) for result in results
@@ -208,14 +211,16 @@ async def adelete_message(self, key: str, idx: int) -> Optional[ChatMessage]:
208211 Optional[ChatMessage]: The `ChatMessage` object that was deleted, or `None` if no message
209212 was associated with the key or could be deleted.
210213 """
211- query = f"""SELECT * from "{ self ._schema_name } "."{ self ._table_name } " WHERE key = '{ key } ' ORDER BY id;"""
212- results = await self .__afetch_query (query )
214+ query = f"""SELECT * from "{ self ._schema_name } "."{ self ._table_name } " WHERE key = :key ORDER BY id;"""
215+ params = {"key" : key }
216+ results = await self .__afetch_query (query , params )
213217 if results :
214218 if idx >= len (results ):
215219 return None
216220 id_to_be_deleted = results [idx ].get ("id" )
217- delete_query = f"""DELETE FROM "{ self ._schema_name } "."{ self ._table_name } " WHERE id = '{ id_to_be_deleted } ' RETURNING *;"""
218- result = await self .__afetch_query (delete_query )
221+ delete_query = f"""DELETE FROM "{ self ._schema_name } "."{ self ._table_name } " WHERE id = :id_to_be_deleted RETURNING *;"""
222+ delete_params = {"id_to_be_deleted" : id_to_be_deleted }
223+ result = await self .__afetch_query (delete_query , delete_params )
219224 result = result [0 ]
220225 if result :
221226 return ChatMessage .model_validate (result .get ("message" ))
@@ -232,12 +237,14 @@ async def adelete_last_message(self, key: str) -> Optional[ChatMessage]:
232237 Optional[ChatMessage]: The `ChatMessage` object that was deleted, or `None` if no message
233238 was associated with the key or could be deleted.
234239 """
235- query = f"""SELECT * from "{ self ._schema_name } "."{ self ._table_name } " WHERE key = '{ key } ' ORDER BY id DESC LIMIT 1;"""
236- results = await self .__afetch_query (query )
240+ query = f"""SELECT * from "{ self ._schema_name } "."{ self ._table_name } " WHERE key = :key ORDER BY id DESC LIMIT 1;"""
241+ params = {"key" : key }
242+ results = await self .__afetch_query (query , params )
237243 if results :
238244 id_to_be_deleted = results [0 ].get ("id" )
239- delete_query = f"""DELETE FROM "{ self ._schema_name } "."{ self ._table_name } " WHERE id = '{ id_to_be_deleted } ' RETURNING *;"""
240- result = await self .__afetch_query (delete_query )
245+ delete_query = f"""DELETE FROM "{ self ._schema_name } "."{ self ._table_name } " WHERE id = :id_to_be_deleted RETURNING *;"""
246+ delete_params = {"id_to_be_deleted" : id_to_be_deleted }
247+ result = await self .__afetch_query (delete_query , delete_params )
241248 result = result [0 ]
242249 if result :
243250 return ChatMessage .model_validate (result .get ("message" ))
0 commit comments