f2880b661e
* Moved to mongo * UI updated to use mongo * UI is a bit fancier now * Import sql to mongo
125 lines
2.9 KiB
JavaScript
125 lines
2.9 KiB
JavaScript
/**
|
|
* Created by WebStorm.
|
|
* User: martin
|
|
* Date: 24/07/2020
|
|
* Time: 11:45
|
|
|
|
*/
|
|
const Jobs = require('../../lib/mongoManager');
|
|
const { Utils } = require('@rakh/utils');
|
|
|
|
const killNLDoubleSpace = /(\\n)\s{2,}|(\\n)|\s{2,}/g;
|
|
|
|
function reduceList(data) {
|
|
if (arguments.length === 0 || arguments[0] === null ) return '';
|
|
|
|
const outObj = data.map((v) => {
|
|
const o = Utils.extractFromObj({...v.details,...v.data, _id:v._id},['title','site', 'company', 'timestamp', 'read', 'applied', 'jobtype', 'class', 'autoclass']);
|
|
o._id = v._id;
|
|
return o;
|
|
|
|
});
|
|
// console.log(data);
|
|
|
|
return outObj;
|
|
}
|
|
|
|
function reduceRecord(record) {
|
|
// console.log('Reducderecord', record);
|
|
let outRec = {...record.details,data:record.data,_id:record._id};
|
|
|
|
return outRec;
|
|
|
|
}
|
|
|
|
exports.getList = (req, res) => {
|
|
console.log('>getList req', req.params);
|
|
|
|
Jobs.find({}, { 'details.title':1, 'details.site':1, 'details.company':1, 'data':1, '_id':1 }).limit(200).sort( { 'data.timestamp': -1 } ).then((doc) => {
|
|
if (doc) {
|
|
|
|
res.send(reduceList(doc));
|
|
}
|
|
}).catch((err) => {
|
|
console.error(err.message);
|
|
res.status(500).send({
|
|
'message': err.message || 'Some error occurred while querying the database.'
|
|
});
|
|
});
|
|
};
|
|
|
|
exports.getJob = (req, res) => {
|
|
console.log('>getJob req', req.params);
|
|
|
|
if(!req.params.id)
|
|
return res.status(500).send({
|
|
'message': 'Job id missing'
|
|
});
|
|
|
|
const id = req.params.id;
|
|
|
|
Jobs.findById(id).then((doc) => {
|
|
if (doc) {
|
|
|
|
const item = reduceRecord(doc._doc);
|
|
const date = new Date( item.timestamp * 1000);
|
|
|
|
console.log(item);
|
|
item.date = date.toLocaleString();
|
|
item.title = item.title.replace(killNLDoubleSpace, ' ');
|
|
|
|
res.send(item);
|
|
}
|
|
}).catch((err) => {
|
|
console.error(err.message);
|
|
res.status(500).send({
|
|
'message': err.message || 'Some error occurred while querying the database.'
|
|
});
|
|
});
|
|
};
|
|
|
|
exports.readJob = (req, res) => {
|
|
console.log('>readJob req', req.params);
|
|
|
|
let id;
|
|
if(!req.params.id)
|
|
return res.status(500).send({
|
|
'message': 'Job id missing'
|
|
});
|
|
else
|
|
id = req.params.id;
|
|
|
|
Jobs.findById(id).then((doc) => {
|
|
if (doc) {
|
|
|
|
let fullDoc = Object.assign({}, doc._doc);
|
|
|
|
console.log('fullDoc', fullDoc);
|
|
|
|
if (!Utils.isEmpty(fullDoc)){
|
|
fullDoc.data.read = new Date().getTime();
|
|
|
|
Jobs.findByIdAndUpdate(id, fullDoc, {'new':true}).then((doc) => {
|
|
console.log(doc._doc);
|
|
res.status(200).end();
|
|
}).catch((err) => {
|
|
console.error('inside',err.message);
|
|
res.status(500).send({
|
|
'message': err.message || 'Some error occurred while querying the database.'
|
|
});
|
|
});
|
|
}
|
|
|
|
}
|
|
}).catch((err) => {
|
|
console.error('outer', err.message);
|
|
res.status(500).send({
|
|
'message': err.message || 'Some error occurred while querying the database.'
|
|
});
|
|
});
|
|
|
|
|
|
};
|
|
|
|
|