export function buildChangeApproval(jiraTicket, log) { return new Promise(function (resolve) { let cardText = ''; cardText += `[${jiraTicket.issue.key}](https://aeo.atlassian.net/servicedesk/customer/portal/135/${jiraTicket.issue.key}) - ${jiraTicket.issue.fields.status.name}\n`; if (jiraTicket.issue.fields.customfield_10010) { if (jiraTicket.issue.fields.customfield_10010.errorMessage) { cardText += `**Request Type:** ${jiraTicket.issue.fields.customfield_10010.errorMessage}\n`; } else { cardText += `**Request Type:** ${jiraTicket.issue.fields.customfield_10010.requestType.name}\n`; } } cardText += `**Summary:** ${jiraTicket.issue.fields.summary}\n`; let detailText = ''; detailText += `**Description:** ${jiraTicket.issue.fields.description}\n`; detailText += '**Details:**\n'; if (jiraTicket.issue.fields.customfield_10010) { detailText += ` - **Type:** ${jiraTicket.issue.fields.customfield_10010.requestType.name}\n`; } if (jiraTicket.issue.fields.customfield_10080) { detailText += ` - **Risk:** ${jiraTicket.issue.fields.customfield_10080.value}\n`; } if (jiraTicket.issue.fields.customfield_10004) { detailText += ` - **Impact:** ${jiraTicket.issue.fields.customfield_10004.value}\n`; } if (jiraTicket.issue.fields.customfield_10256) { detailText += ` - **Business Impact:** ${jiraTicket.issue.fields.customfield_10256}\n`; } if (jiraTicket.issue.fields.customfield_10252) { detailText += ` - **Business Justification:** ${jiraTicket.issue.fields.customfield_10252}\n`; } if (jiraTicket.issue.fields.customfield_10257) { const changeDate = new Date(jiraTicket.issue.fields.customfield_10257).toLocaleDateString(); const changeTime = new Date(jiraTicket.issue.fields.customfield_10257).toLocaleTimeString([], { hour: '2-digit', minute: '2-digit', hour12: true }); detailText += `**Implementation Date:** ${changeDate} ${changeTime}\n`; } let assignmentText = ''; if (jiraTicket.issue.fields.reporter) { assignmentText += `**Reporter:** ${jiraTicket.issue.fields.reporter.displayName}\n`; } if (jiraTicket.issue.fields.customfield_10302) { assignmentText += `**Implementer:** ${jiraTicket.issue.fields.customfield_10302.displayName}\n`; } const requestCard = { type: 'AdaptiveCard', $schema: 'http://adaptivecards.io/schemas/adaptive-card.json', version: '1.2', body: [ { type: 'TextBlock', text: cardText.trim(), wrap: true }, { type: 'TextBlock', wrap: true, text: detailText.trim(), separator: true }, { type: 'TextBlock', text: assignmentText.trim(), wrap: true, separator: true }, ], actions: [ { type: 'Action.OpenUrl', title: 'Open Request', url: `https://aeo.atlassian.net/servicedesk/customer/portal/135/${jiraTicket.issue.key}`, }, { type: 'Action.Submit', title: 'Remove Card', style: 'destructive', data: { cardType: 'requestApproval', action: 'removeCard' }, }, ], }; let requestText = cardText; requestText += `---\n${detailText}`; requestText += `---\n${assignmentText}`; log.logDebug('buildChangeApproval', `Built card for ${jiraTicket.issue.key}`); resolve({ card: requestCard, message: requestText }); }); } export function buildRequestApproval(jiraTicket) { return new Promise(function (resolve) { let cardText = ''; cardText += `[${jiraTicket.issue.key}](https://aeo.atlassian.net/servicedesk/customer/portal/135/${jiraTicket.issue.key}) - ${jiraTicket.issue.fields.status.name}\n`; if (jiraTicket.issue.fields.customfield_10010) { if (jiraTicket.issue.fields.customfield_10010.errorMessage) { cardText += `**Request Type:** ${jiraTicket.issue.fields.customfield_10010.errorMessage}\n`; } else { cardText += `**Request Type:** ${jiraTicket.issue.fields.customfield_10010.requestType.name}\n`; } } cardText += `**Summary:** ${jiraTicket.issue.fields.summary}\n`; let detailText = ''; detailText += '**Details:**\n'; if (jiraTicket.issue.fields.customfield_10314) { detailText += ` - **Person:** ${jiraTicket.issue.fields.customfield_10346}, ${jiraTicket.issue.fields.customfield_10314}`; if (jiraTicket.issue.fields.customfield_10310) { detailText += ` (${jiraTicket.issue.fields.customfield_10310.value})`; } detailText += '\n'; } if (jiraTicket.issue.fields.customfield_10318) { detailText += ` - **Position:** ${jiraTicket.issue.fields.customfield_10318}\n`; } let assignmentText = ''; assignmentText += `**Reporter:** ${jiraTicket.issue.fields.reporter.displayName}\n`; const requestCard = { type: 'AdaptiveCard', $schema: 'http://adaptivecards.io/schemas/adaptive-card.json', version: '1.2', body: [ { type: 'TextBlock', text: cardText.trim(), wrap: true }, { type: 'TextBlock', wrap: true, text: detailText.trim(), separator: true }, { type: 'TextBlock', text: assignmentText.trim(), wrap: true, separator: true }, ], actions: [ { type: 'Action.OpenUrl', title: 'Open Request', url: `https://aeo.atlassian.net/servicedesk/customer/portal/135/${jiraTicket.issue.key}`, }, { type: 'Action.Submit', title: 'Remove Card', style: 'destructive', data: { cardType: 'requestApproval', action: 'removeCard' }, }, ], }; let requestText = cardText; requestText += `---\n${detailText}`; requestText += `---\n${assignmentText}`; resolve({ card: requestCard, message: requestText }); }); }