This commit is contained in:
Tiago vasconcelos 2022-09-30 17:29:35 +01:00
parent db2ffadb43
commit 98ef0dfcb1
5 changed files with 18 additions and 7 deletions

View file

@ -408,6 +408,7 @@ async def create_diagonalley_market_stalls(
async def update_diagonalley_market(market_id):
pass
async def create_chat_message(data: CreateChatMessage):
print("DATA", data)
await db.execute(
@ -422,17 +423,20 @@ async def create_chat_message(data: CreateChatMessage):
),
)
async def get_diagonalley_latest_chat_messages(room_name: str):
rows = await db.fetchall(
"SELECT * FROM diagonalley.messages WHERE id_conversation = ? ORDER BY timestamp DESC LIMIT 20", (room_name,)
"SELECT * FROM diagonalley.messages WHERE id_conversation = ? ORDER BY timestamp DESC LIMIT 20",
(room_name,),
)
return [ChatMessage(**row) for row in rows]
async def get_diagonalley_chat_messages(room_name: str):
rows = await db.fetchall(
"SELECT * FROM diagonalley.messages WHERE id_conversation = ? ORDER BY timestamp DESC", (room_name,)
"SELECT * FROM diagonalley.messages WHERE id_conversation = ? ORDER BY timestamp DESC",
(room_name,),
)
return [ChatMessage(**row) for row in rows]

View file

@ -114,6 +114,7 @@ async def m001_initial(db):
"""
)
async def m002_add_chat_messages(db):
"""
Initial chat messages table.
@ -135,5 +136,9 @@ async def m002_add_chat_messages(db):
"""
Create indexes for message fetching
"""
await db.execute("CREATE INDEX idx_messages_timestamp ON diagonalley.messages (timestamp DESC)")
await db.execute("CREATE INDEX idx_messages_conversations ON diagonalley.messages (id_conversation)")
await db.execute(
"CREATE INDEX idx_messages_timestamp ON diagonalley.messages (timestamp DESC)"
)
await db.execute(
"CREATE INDEX idx_messages_conversations ON diagonalley.messages (id_conversation)"
)

View file

@ -116,6 +116,7 @@ class ChatMessage(BaseModel):
id_conversation: str
timestamp: int
class CreateChatMessage(BaseModel):
msg: str = Query(..., min_length=1)
pubkey: str = Query(...)

View file

@ -487,9 +487,10 @@ async def api_diagonalley_generate_keys():
## MESSAGES/CHAT
@diagonalley_ext.get("/api/v1/chat/messages/{room_name}")
async def api_get_latest_chat_msg(room_name: str, all_messages: bool = Query(False)):
if(all_messages):
if all_messages:
messages = await get_diagonalley_chat_messages(room_name)
else:
messages = await get_diagonalley_latest_chat_messages(room_name)