// src/commands/woSummary.js import { collectWoSummary } from '../services/woService.js'; import { logger } from '../utils/logger.js'; import { formatDisplayTime } from '../utils/time.js'; export async function handleWoSummary(bot, trigger) { logger('wo:summary', 'Handler entered'); // Support both Webex (args) and HTTP (query) const query = trigger.query || {}; const args = trigger.args || []; // Get work order number from args or query param const woNumber = (args[0] || query.woNumber || query.wo || query.workorder || query.id || '') .trim(); if (!woNumber || !/^\d+$/.test(woNumber)) { const usage = '**Work Order Summary Usage:**\n' + '`/woSummary 123456` → Get detailed summary for a specific work order\n\n' + 'Also works via HTTP: `?woNumber=123456`'; await bot.say('markdown', usage); return; } logger('wo:summary', `Fetching summary for work order ${woNumber}`); try { const summary = await collectWoSummary(woNumber); let reply = `**Work Order Summary – ${woNumber}**\n\n`; reply += `${summary || 'No summary data available.'}\n`; reply += `\n*Last checked: ${formatDisplayTime()}*`; await bot.say('markdown', reply.trim()); logger('wo:summary', `Successfully returned summary for WO ${woNumber}`); } catch (err) { logger('wo:summary', `Error fetching summary for WO ${woNumber}: ${err.message}`, 'error'); await bot.say('markdown', `❌ Error fetching work order summary for **${woNumber}**: ${err.message}`); } }