Fix: API de chats con lastMessage y send acepta content
Some checks failed
build-and-deploy / build-and-deploy (push) Failing after 13s
Some checks failed
build-and-deploy / build-and-deploy (push) Failing after 13s
This commit is contained in:
@@ -6,7 +6,8 @@ import { query } from '../../../../utils/database'
|
|||||||
import { baileysManager } from '../../../../services/baileys/manager'
|
import { baileysManager } from '../../../../services/baileys/manager'
|
||||||
|
|
||||||
interface SendMessageBody {
|
interface SendMessageBody {
|
||||||
message: string
|
content?: string
|
||||||
|
message?: string
|
||||||
}
|
}
|
||||||
|
|
||||||
export default defineEventHandler(async (event) => {
|
export default defineEventHandler(async (event) => {
|
||||||
@@ -19,8 +20,10 @@ export default defineEventHandler(async (event) => {
|
|||||||
const chatId = getRouterParam(event, 'chatId')
|
const chatId = getRouterParam(event, 'chatId')
|
||||||
const body = await readBody<SendMessageBody>(event)
|
const body = await readBody<SendMessageBody>(event)
|
||||||
|
|
||||||
if (!body.message?.trim()) {
|
// Accept both 'content' and 'message' fields
|
||||||
throw createError({ statusCode: 400, message: 'Message is required' })
|
const messageText = body.content || body.message
|
||||||
|
if (!messageText?.trim()) {
|
||||||
|
throw createError({ statusCode: 400, message: 'Message content is required' })
|
||||||
}
|
}
|
||||||
|
|
||||||
// Get chat JID
|
// Get chat JID
|
||||||
@@ -37,7 +40,7 @@ export default defineEventHandler(async (event) => {
|
|||||||
|
|
||||||
try {
|
try {
|
||||||
const result = await baileysManager.sendMessage(instanceId!, jid, {
|
const result = await baileysManager.sendMessage(instanceId!, jid, {
|
||||||
text: body.message
|
text: messageText
|
||||||
})
|
})
|
||||||
|
|
||||||
return {
|
return {
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ interface ChatRow {
|
|||||||
is_group: boolean
|
is_group: boolean
|
||||||
unread_count: number
|
unread_count: number
|
||||||
last_message_at: Date | null
|
last_message_at: Date | null
|
||||||
|
last_message: string | null
|
||||||
}
|
}
|
||||||
|
|
||||||
export default defineEventHandler(async (event) => {
|
export default defineEventHandler(async (event) => {
|
||||||
@@ -29,7 +30,8 @@ export default defineEventHandler(async (event) => {
|
|||||||
|
|
||||||
// Get chats with last message
|
// Get chats with last message
|
||||||
const result = await query<ChatRow>(
|
const result = await query<ChatRow>(
|
||||||
`SELECT c.id, c.jid, c.name, c.is_group, c.unread_count, c.last_message_at
|
`SELECT c.id, c.jid, c.name, c.is_group, c.unread_count, c.last_message_at,
|
||||||
|
(SELECT content FROM messages m WHERE m.chat_id = c.id ORDER BY timestamp DESC LIMIT 1) as last_message
|
||||||
FROM chats c
|
FROM chats c
|
||||||
WHERE c.instance_id = $1
|
WHERE c.instance_id = $1
|
||||||
ORDER BY c.last_message_at DESC NULLS LAST`,
|
ORDER BY c.last_message_at DESC NULLS LAST`,
|
||||||
@@ -42,6 +44,7 @@ export default defineEventHandler(async (event) => {
|
|||||||
name: row.name || row.jid.split('@')[0],
|
name: row.name || row.jid.split('@')[0],
|
||||||
isGroup: row.is_group,
|
isGroup: row.is_group,
|
||||||
unreadCount: row.unread_count,
|
unreadCount: row.unread_count,
|
||||||
lastMessageAt: row.last_message_at
|
lastMessageAt: row.last_message_at,
|
||||||
|
lastMessage: row.last_message || ''
|
||||||
}))
|
}))
|
||||||
})
|
})
|
||||||
|
|||||||
Reference in New Issue
Block a user