/** * 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.' }); }); };