pockybot
Version:
Spark bot that handles team recognition
37 lines (36 loc) • 1.85 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.DefaultCategoryResultsService = void 0;
const htmlHelper_1 = require("../parsers/htmlHelper");
class DefaultCategoryResultsService {
returnCategoryResultsTable(results, categories) {
let tables = '';
categories.forEach((category, index) => {
const sectionId = `categoryresults-${index}`;
const categoryResults = this.sortCategoryPegs(results, category);
if (categoryResults.length > 0) {
tables += `
<h2 class="clickable collapsed" data-toggle="collapse" data-target="#section-${sectionId}" aria-expanded="false" aria-controls="section-${sectionId}"><i class="fas fa-plus"></i><i class="fas fa-minus"></i> Category: ${htmlHelper_1.default.uppercaseFirstChar(category)}</h2>
`;
tables += htmlHelper_1.default.generateCategoryResultsTable(categoryResults, sectionId);
}
else {
tables += `
<h2>Category: ${htmlHelper_1.default.uppercaseFirstChar(category)}</h2>
<p class="pb-3">There were no pegs given for this keyword</p>`;
}
});
return tables;
}
sortCategoryPegs(results, category) {
let categoryResults = results.map(x => Object.assign({}, x)); // deep copy array
categoryResults.forEach(catResult => {
catResult.validPegsReceived = catResult.validPegsReceived.filter(x => x.categories.includes(category));
});
categoryResults = categoryResults.filter(x => x.validPegsReceived.length > 0);
// sort from most to least pegs
categoryResults.sort((a, b) => b.validPegsReceived.length - a.validPegsReceived.length);
return categoryResults;
}
}
exports.DefaultCategoryResultsService = DefaultCategoryResultsService;