diff --git a/api.php b/api.php index 164c8ad..bcbe4ba 100644 --- a/api.php +++ b/api.php @@ -3068,6 +3068,40 @@ switch ($action) { echo json_encode(['error' => 'Tikettiä ei löydy']); break; } + // Zammad-tiketti: hae artikkelit on-demand jos ei vielä haettu + if (!empty($ticket['zammad_ticket_id']) && empty($ticket['messages'])) { + try { + $integ = dbGetIntegration($companyId, 'zammad'); + if ($integ && $integ['enabled']) { + $z = new ZammadClient($integ['config']['url'], $integ['config']['token']); + $articles = $z->getArticles((int)$ticket['zammad_ticket_id']); + foreach ($articles as $art) { + if (($art['internal'] ?? false)) continue; + $artId = (int)$art['id']; + $existingMsg = dbGetMessageByZammadArticleId($ticket['id'], $artId); + if ($existingMsg) continue; + $msgId = substr(uniqid(), -8) . bin2hex(random_bytes(2)); + $msgType = ($art['sender'] ?? '') === 'Customer' ? 'incoming' : 'outgoing'; + $body = $art['body'] ?? ''; + if (($art['content_type'] ?? '') === 'text/html') { + $body = strip_tags($body, '