Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 | 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x | /**
* @module bugreport
*/
const mail = require("../mail");
const adminService = require("../admin");
const log = require("../../util/log");
const octokit = require("../octokit");
/**
* Process bugreport submitted by a user
* at a specific route: Send the bugreport
* email to admin, log the bugreport via
* the admin module and create an anonymised
* issue on Github.
* @param {String} originalUrl
* @param {String} ip
* @param {String} email
* @param {String} report text
*/
const processBugReport = async (originalUrl, ip, email, report) => {
log.info("Processing bug report for route: '%s'", originalUrl);
const bugreport = {
timestamp: (new Date()).toUTCString(),
originalUrl,
ip,
email,
report,
};
await sendBugReport(bugreport);
adminService.logBugReport(bugreport);
octokit.createBugreportIssue(bugreport);
};
/**
* Send a bug report email to the bug report
* email address specified in .env. This sets the sender
* of the email to be the server email address, but the
* user's email is specified in the body of the email
* if they provided one.
* @param {Object} bugreport
*/
const sendBugReport = async (bugreport) => {
await mail.sendEmail(
process.env.BUG_REPORT_EMAIL_ADDRESS,
process.env.BUG_REPORT_EMAIL_ADDRESS,
`[rdfmapped.com] Bug Report for route: ${bugreport.originalUrl}`,
`Bugreport: ${JSON.stringify(bugreport)}`,
`<p>Bugreport: <code>${JSON.stringify(bugreport)}</code></p>`);
};
module.exports = {
processBugReport,
};
|