Fixed TS Errors

This commit is contained in:
2025-10-31 16:39:49 +01:00
parent c439eec66c
commit 55c101df12
2 changed files with 48 additions and 20 deletions

View File

@@ -12,7 +12,7 @@ const helpdeskRoutes: FastifyPluginAsync = async (server) => {
const tenant_id = req.user?.tenant_id const tenant_id = req.user?.tenant_id
if (!tenant_id) return res.status(401).send({ error: 'Unauthorized' }) 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 }) const conversations = await getConversations(server, tenant_id, { status })
return res.send(conversations) return res.send(conversations)
}) })
@@ -22,7 +22,12 @@ const helpdeskRoutes: FastifyPluginAsync = async (server) => {
const tenant_id = req.user?.tenant_id const tenant_id = req.user?.tenant_id
if (!tenant_id) return res.status(401).send({ error: 'Unauthorized' }) 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) { if (!contact || !channel_instance_id) {
return res.status(400).send({ error: 'Missing contact or 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 // 🧭 3. Einzelne Konversation abrufen
server.get('/helpdesk/conversations/:id', async (req, res) => { server.get('/helpdesk/conversations/:id', async (req, res) => {
const tenant_id = req.user?.tenant_id 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 const { data, error } = await server.supabase
.from('helpdesk_conversations') .from('helpdesk_conversations')
@@ -66,8 +71,8 @@ const helpdeskRoutes: FastifyPluginAsync = async (server) => {
// 🔄 4. Konversation Status ändern // 🔄 4. Konversation Status ändern
server.patch('/helpdesk/conversations/:id/status', async (req, res) => { server.patch('/helpdesk/conversations/:id/status', async (req, res) => {
const conversation_id = req.params.id const {id: conversation_id} = req.params as { id: string }
const { status } = req.body const { status } = req.body as { status: string }
const updated = await updateConversationStatus(server, conversation_id, status) const updated = await updateConversationStatus(server, conversation_id, status)
return res.send(updated) return res.send(updated)
@@ -75,7 +80,7 @@ const helpdeskRoutes: FastifyPluginAsync = async (server) => {
// 💬 5. Nachrichten abrufen // 💬 5. Nachrichten abrufen
server.get('/helpdesk/conversations/:id/messages', async (req, res) => { 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) const messages = await getMessages(server, conversation_id)
return res.send(messages) return res.send(messages)
}) })
@@ -85,8 +90,8 @@ const helpdeskRoutes: FastifyPluginAsync = async (server) => {
console.log(req.user) console.log(req.user)
const tenant_id = req.user?.tenant_id const tenant_id = req.user?.tenant_id
const author_user_id = req.user?.user_id const author_user_id = req.user?.user_id
const conversation_id = req.params.id const {id: conversation_id} = req.params as { id: string }
const { text } = req.body const { text } = req.body as { text: string }
if (!text) return res.status(400).send({ error: 'Missing message text' }) 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 // 👤 7. Kontakt suchen oder anlegen
server.post('/helpdesk/contacts', async (req, res) => { server.post('/helpdesk/contacts', async (req, res) => {
const tenant_id = req.user?.tenant_id 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 }) const contact = await getOrCreateContact(server, tenant_id, { email, phone, display_name })
return res.status(201).send(contact) return res.status(201).send(contact)
@@ -124,7 +129,24 @@ const helpdeskRoutes: FastifyPluginAsync = async (server) => {
}, },
}, },
handler: async (req, reply) => { 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 // 🔒 Tenant aus Auth-Context
const tenant_id = req.user?.tenant_id const tenant_id = req.user?.tenant_id
@@ -233,8 +255,8 @@ const helpdeskRoutes: FastifyPluginAsync = async (server) => {
return return
} }
const contact = conv.helpdesk_contacts const contact = conv.helpdesk_contacts as unknown as {email: string}
const channel = conv.helpdesk_channel_instances const channel = conv.helpdesk_channel_instances as unknown as {name: string}
console.log(contact) console.log(contact)
if (!contact?.email) { if (!contact?.email) {
@@ -244,6 +266,7 @@ const helpdeskRoutes: FastifyPluginAsync = async (server) => {
// 🔐 SMTP-Daten entschlüsseln // 🔐 SMTP-Daten entschlüsseln
try { try {
// @ts-ignore
const smtp = channel?.config?.smtp const smtp = channel?.config?.smtp
const host = const host =
typeof smtp.host === "object" ? decrypt(smtp.host) : smtp.host typeof smtp.host === "object" ? decrypt(smtp.host) : smtp.host
@@ -261,6 +284,7 @@ const helpdeskRoutes: FastifyPluginAsync = async (server) => {
}) })
// 📩 Mail senden // 📩 Mail senden
const mailOptions = { const mailOptions = {
from: `"${channel?.name}" <${user}>`, from: `"${channel?.name}" <${user}>`,
to: contact.email, to: contact.email,

View File

@@ -537,10 +537,12 @@ export default async function resourceRoutes(server: FastifyInstance) {
for (const [key, val] of Object.entries(filters || {})) { for (const [key, val] of Object.entries(filters || {})) {
if (Array.isArray(val)) { if (Array.isArray(val)) {
searchQuery = searchQuery.in(key, val); searchQuery = searchQuery.in(key, val);
} else if (val === true || val === false || val === null) { } else { // @ts-ignore
searchQuery = searchQuery.is(key, val); if (val === true || val === false || val === null) {
} else { searchQuery = searchQuery.is(key, val);
searchQuery = searchQuery.eq(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 || {})) { for (const [key, val] of Object.entries(filters || {})) {
if (Array.isArray(val)) { if (Array.isArray(val)) {
baseQuery = baseQuery.in(key, val); baseQuery = baseQuery.in(key, val);
} else if (val === true || val === false || val === null) { } else { // @ts-ignore
baseQuery = baseQuery.is(key, val); if (val == true || val == false || val === null) {
} else { baseQuery = baseQuery.is(key, val);
baseQuery = baseQuery.eq(key, val); } else {
baseQuery = baseQuery.eq(key, val);
}
} }
} }