var SANDOS = 'Sandos'; var HIPOTELS = 'Hipotels';
var REQUEST = 'request'; var BUG = 'bug'; var BUDGET = 'budget';
var configs = { SANDOS: { baseMRLink: 'https://gitlab.TEST.net/P1/', name: 'Sandos' }, HIPOTELS: { baseMRLink: 'https://gitlab.TEST.net/P2/', name: 'Hipotels' } };
var mergeRequests = { SANDOS: [ { ticketNumber: 58343, title: 'Añadir variables requeridas a Datalayer', type: REQUEST, estimatedTime: 5, mrLinks: [ 'bookingengine/merge_requests/34' ], } ], HIPOTELS: [ { ticketNumber: 1, title: 'TEST', type: BUG, estimatedTime: 15, mrLinks: [ 'bookingengine/merge_requests/XX' ], } ], };
function buildMRs() { var mrList = []; Object.keys(mergeRequests).forEach(function (projectKey) { var projectMRs = mergeRequests[projectKey]; var cfg = configs[projectKey]; var fullProjectMrs = projectMRs.map(function (mr) { return { title: 'Feature#' + mr.ticketNumber + ':' + mr.title + ' [' + mr.estimatedTime + ' min.]' , redmineLink: 'https://projectes.TEST.net/issues/' + mr.ticketNumber, mrLinks: mr.mrLinks.map(function(shortMRLink) { return cfg.baseMRLink + shortMRLink; }), time: mr.estimatedTime, type: mr.type, name: cfg.name, }; }); mrList = mrList.concat(fullProjectMrs); });
return mrList.sort(function(mrA, mrB) { return mrA.time - mrB.time }); }
function printType(type) { if (type === 'bug') { return 'BUG' } else if (type === 'budget') {
return '<font color="#38761d">BUDGET</font>'
} return 'Petición'; }
function buildMailTemplate(mergeRequests) { var mrs = mergeRequests.map(function (mrData) {
var mrHtml = '';
mrHtml += '<div>';
mrHtml += '<p><b>';
mrHtml += ' ' + mrData.name + ' - ' + printType(mrData.type) + ' - ' + mrData.title;
mrHtml += '</b></p>';
mrHtml += '\r\n ';
mrHtml += '<p>';
mrHtml += ' <b> Ticket: </b>' + '<a href=" ' + mrData.redmineLink + '">' + mrData.redmineLink + '</a>';
mrHtml += '</p>';
mrHtml += '\r\n ';
mrData.mrLinks.forEach(function (mrLink) {
mrHtml += '<p>';
mrHtml += ' <b> MR: </b>' + '<a href=" ' + mrLink + '">' + mrLink + '</a>';
mrHtml += '</p>';
mrHtml += '\r\n';
});
mrHtml += '</div>';
mrHtml += '<b style="font-size:12px">------------------------------<wbr>------------------------------<wbr>------------------------------<wbr>-------------------------<wbr></b><br>';
return mrHtml;
}); var html = '
/* Enviar desde Gmail copiando el contenido en un mail (Inspeccionar elemento) Ejecutar como clear && node MR_pendientes.js > TEST.HTML */
var sortedMrs = buildMRs(); var html = buildMailTemplate(sortedMrs); console.log(html);