From 55c101df12363dedc83f953d7f6df02e6ef7e27d Mon Sep 17 00:00:00 2001 From: florianfederspiel Date: Fri, 31 Oct 2025 16:39:49 +0100 Subject: [PATCH] Fixed TS Errors --- src/routes/helpdesk.ts | 48 ++++++++++++++++++++++++++++++----------- src/routes/resources.ts | 20 ++++++++++------- 2 files changed, 48 insertions(+), 20 deletions(-) diff --git a/src/routes/helpdesk.ts b/src/routes/helpdesk.ts index a194d25..4f9688e 100644 --- a/src/routes/helpdesk.ts +++ b/src/routes/helpdesk.ts @@ -12,7 +12,7 @@ const helpdeskRoutes: FastifyPluginAsync = async (server) => { const tenant_id = req.user?.tenant_id if (!tenant_id) return res.status(401).send({ error: 'Unauthorized' }) - const { status } = req.query + const { status } = req.query as {status: string} const conversations = await getConversations(server, tenant_id, { status }) return res.send(conversations) }) @@ -22,7 +22,12 @@ const helpdeskRoutes: FastifyPluginAsync = async (server) => { const tenant_id = req.user?.tenant_id if (!tenant_id) return res.status(401).send({ error: 'Unauthorized' }) - const { contact, channel_instance_id, subject, message } = req.body + const { contact, channel_instance_id, subject, message } = req.body as { + contact: object + channel_instance_id: string + subject: string + message: string + } if (!contact || !channel_instance_id) { return res.status(400).send({ error: 'Missing contact or channel_instance_id' }) } @@ -51,7 +56,7 @@ const helpdeskRoutes: FastifyPluginAsync = async (server) => { // 🧭 3. Einzelne Konversation abrufen server.get('/helpdesk/conversations/:id', async (req, res) => { const tenant_id = req.user?.tenant_id - const conversation_id = req.params.id + const {id: conversation_id} = req.params as {id: string} const { data, error } = await server.supabase .from('helpdesk_conversations') @@ -66,8 +71,8 @@ const helpdeskRoutes: FastifyPluginAsync = async (server) => { // 🔄 4. Konversation Status ändern server.patch('/helpdesk/conversations/:id/status', async (req, res) => { - const conversation_id = req.params.id - const { status } = req.body + const {id: conversation_id} = req.params as { id: string } + const { status } = req.body as { status: string } const updated = await updateConversationStatus(server, conversation_id, status) return res.send(updated) @@ -75,7 +80,7 @@ const helpdeskRoutes: FastifyPluginAsync = async (server) => { // 💬 5. Nachrichten abrufen server.get('/helpdesk/conversations/:id/messages', async (req, res) => { - const conversation_id = req.params.id + const {id:conversation_id} = req.params as { id: string } const messages = await getMessages(server, conversation_id) return res.send(messages) }) @@ -85,8 +90,8 @@ const helpdeskRoutes: FastifyPluginAsync = async (server) => { console.log(req.user) const tenant_id = req.user?.tenant_id const author_user_id = req.user?.user_id - const conversation_id = req.params.id - const { text } = req.body + const {id: conversation_id} = req.params as { id: string } + const { text } = req.body as { text: string } if (!text) return res.status(400).send({ error: 'Missing message text' }) @@ -104,7 +109,7 @@ const helpdeskRoutes: FastifyPluginAsync = async (server) => { // 👤 7. Kontakt suchen oder anlegen server.post('/helpdesk/contacts', async (req, res) => { const tenant_id = req.user?.tenant_id - const { email, phone, display_name } = req.body + const { email, phone, display_name } = req.body as { email: string; phone: string, display_name: string } const contact = await getOrCreateContact(server, tenant_id, { email, phone, display_name }) return res.status(201).send(contact) @@ -124,7 +129,24 @@ const helpdeskRoutes: FastifyPluginAsync = async (server) => { }, }, handler: async (req, reply) => { - const { type_id, name, config, is_active = true } = req.body + const { type_id, name, config, is_active = true } = req.body as + { + type_id: string, + name: string, + config: { + imap:{ + host: string | object, + user: string | object, + pass: string | object, + }, + smtp:{ + host: string | object, + user: string | object, + pass: string | object, + } + }, + is_active: boolean + } // 🔒 Tenant aus Auth-Context const tenant_id = req.user?.tenant_id @@ -233,8 +255,8 @@ const helpdeskRoutes: FastifyPluginAsync = async (server) => { return } - const contact = conv.helpdesk_contacts - const channel = conv.helpdesk_channel_instances + const contact = conv.helpdesk_contacts as unknown as {email: string} + const channel = conv.helpdesk_channel_instances as unknown as {name: string} console.log(contact) if (!contact?.email) { @@ -244,6 +266,7 @@ const helpdeskRoutes: FastifyPluginAsync = async (server) => { // 🔐 SMTP-Daten entschlüsseln try { + // @ts-ignore const smtp = channel?.config?.smtp const host = typeof smtp.host === "object" ? decrypt(smtp.host) : smtp.host @@ -261,6 +284,7 @@ const helpdeskRoutes: FastifyPluginAsync = async (server) => { }) // 📩 Mail senden + const mailOptions = { from: `"${channel?.name}" <${user}>`, to: contact.email, diff --git a/src/routes/resources.ts b/src/routes/resources.ts index 8ae1840..09ee761 100644 --- a/src/routes/resources.ts +++ b/src/routes/resources.ts @@ -537,10 +537,12 @@ export default async function resourceRoutes(server: FastifyInstance) { for (const [key, val] of Object.entries(filters || {})) { if (Array.isArray(val)) { searchQuery = searchQuery.in(key, val); - } else if (val === true || val === false || val === null) { - searchQuery = searchQuery.is(key, val); - } else { - searchQuery = searchQuery.eq(key, val); + } else { // @ts-ignore + if (val === true || val === false || val === null) { + searchQuery = searchQuery.is(key, val); + } else { + searchQuery = searchQuery.eq(key, val); + } } } @@ -632,10 +634,12 @@ export default async function resourceRoutes(server: FastifyInstance) { for (const [key, val] of Object.entries(filters || {})) { if (Array.isArray(val)) { baseQuery = baseQuery.in(key, val); - } else if (val === true || val === false || val === null) { - baseQuery = baseQuery.is(key, val); - } else { - baseQuery = baseQuery.eq(key, val); + } else { // @ts-ignore + if (val == true || val == false || val === null) { + baseQuery = baseQuery.is(key, val); + } else { + baseQuery = baseQuery.eq(key, val); + } } }