chats-and-contacts.get.ts
894 Bytes
import { db } from '@/server/fake-db/apps/chat'
import type { ChatContact, ChatContactWithChat } from '@/server/fake-db/apps/chat/types'
export default defineEventHandler(async event => {
const { q = '' }: { q?: string } = getQuery(event)
const qLowered = q.toLowerCase()
const chatsContacts: ChatContactWithChat[] = db.chats
.map(chat => {
const contact = JSON.parse(JSON.stringify((db.contacts.find(c => c.id === chat.userId) as ChatContact)))
contact.chat = { id: chat.id, unseenMsgs: chat.unseenMsgs, lastMessage: chat.messages.at(-1) }
return contact
})
.reverse()
const profileUserData: ChatContact = db.profileUser
return {
chatsContacts: chatsContacts.filter(c => c.fullName.toLowerCase().includes(qLowered)),
contacts: db.contacts.filter(c => c.fullName.toLowerCase().includes(qLowered)),
profileUser: profileUserData,
}
})