backend/src/services/issue.services.js

35 lines
1.0 KiB
JavaScript
Raw Normal View History

/* eslint-disable no-useless-escape */
const axios = require('axios');
const log = require('../utils/log.utils');
async function processor(data) {
log.out('issueService.processor: Issue received', 'info');
let out = {};
out.title = data.subject.replace(/<[^>]+>|[\*\$]/g, '');
out.body = data.msg.replace(/<[^>]+>|[\*\$]/g, '');
return await sendToGitea(out);
}
async function sendToGitea(body) {
let key = process.env.OWL_GIT_ISSUEBOT;
let url = process.env.OWL_GIT_APIENDPOINT;
let opts = {
headers: {
Authorization: key
}
};
var res = await axios.post(url, body, opts);
/* Need to read the output from the POST and pass the result upwards to the
client.*/
if (res.status == 201) {
log.out('issueService.sendToGitea: Issue sent to Gitea', 'info');
return {status: res.status,message:'issue created'};
} else {
log.out(`issueService.sendToGitea: Fail to send issue: ${res.body}`, 'err');
return {status: res.status,message:'issue not created'};
}
}
module.exports = {
processor
};