mirror of
https://github.com/atlanticbiomedical/biomedjs.git
synced 2025-07-02 00:47:26 -04:00
More stuff
This commit is contained in:
@ -1,4 +1,6 @@
|
||||
var mongoose = require('mongoose'),
|
||||
Device = mongoose.model('Device'),
|
||||
email = require('emailjs'),
|
||||
TestRun = mongoose.model('TestRun');
|
||||
|
||||
var _ = require('lodash');
|
||||
@ -6,68 +8,131 @@ var md5 = require('MD5');
|
||||
|
||||
var log = require('log4node');
|
||||
|
||||
exports.index = function(req, res, next) {
|
||||
log.info('test_runs.index');
|
||||
|
||||
TestRun.find({ deleted: false })
|
||||
.exec(returnResult(res));
|
||||
};
|
||||
module.exports = function(config) {
|
||||
|
||||
exports.get = function(req, res, next) {
|
||||
var id = req.param('test_run_id');
|
||||
|
||||
log.info("test_runs.get %s", id);
|
||||
|
||||
TestRun.findById(id)
|
||||
.exec(returnResult(res));
|
||||
};
|
||||
|
||||
exports.create = function(req, res, next) {
|
||||
log.info("test_runs.create %j", res.body);
|
||||
|
||||
var testRun = new TestRun(req.body);
|
||||
testRun.save(returnResult(res));
|
||||
};
|
||||
|
||||
exports.update = function(req, res, next) {
|
||||
var id = req.param('test_run_id');
|
||||
log.info('test_runs.update %s %j', id, req.body);
|
||||
|
||||
TestRun.findById(id, function(err, testRun) {
|
||||
if (err) {
|
||||
log.error("Error: %s", err);
|
||||
res.json(500, err);
|
||||
} else if (!testRun) {
|
||||
res.json(404, 'Unknown TestRun: %s', id);
|
||||
} else {
|
||||
_.assign(testRun, req.body);
|
||||
testRun.save(returnResult(res, testRun));
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
function returnResult(res, result) {
|
||||
return function(err, data) {
|
||||
if (err) {
|
||||
log.error("Error: %s", err);
|
||||
res.json(500, err);
|
||||
} else {
|
||||
if (result) {
|
||||
res.json(result);
|
||||
function returnResult(res, result) {
|
||||
return function(err, data) {
|
||||
if (err) {
|
||||
log.error("Error: %s", err);
|
||||
res.json(500, err);
|
||||
} else {
|
||||
res.json(data);
|
||||
if (result) {
|
||||
res.json(result);
|
||||
} else {
|
||||
res.json(data);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function mutateResult(res, mutator) {
|
||||
return function(err, results) {
|
||||
if (err) {
|
||||
log.error("Error: %s", err);
|
||||
res.json(500, err);
|
||||
} else {
|
||||
res.json(mutator(results));
|
||||
function mutateResult(res, mutator) {
|
||||
return function(err, results) {
|
||||
if (err) {
|
||||
log.error("Error: %s", err);
|
||||
res.json(500, err);
|
||||
} else {
|
||||
res.json(mutator(results));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function sendReportEmail(data) {
|
||||
Device.findById(data.device)
|
||||
.populate({path: 'deviceType'})
|
||||
.exec(function(err, device) {
|
||||
console.log(device);
|
||||
|
||||
var subject = "Test run results for device: (" + device.biomedId + ") " + device.deviceType.make + " " + device.deviceType.model;
|
||||
|
||||
var message = "";
|
||||
|
||||
for (var i = 0; i < data.fields.length; i++) {
|
||||
var field = data.fields[i];
|
||||
|
||||
message += field.label + "\n";
|
||||
if (field.type == "range") {
|
||||
message += "Passing Values: " + field.min + "-" + field.max + "\n";
|
||||
message += "Value: " + field.value + "\n";
|
||||
}
|
||||
message += "Result: " + (field.result ? 'Passed' : 'Failed') + "\n";
|
||||
|
||||
if (field.comments) {
|
||||
message += "Comments: \n";
|
||||
message += field.comments;
|
||||
}
|
||||
message += "\n\n";
|
||||
}
|
||||
|
||||
message += "-- Summary --\n";
|
||||
message += "Result: " + (data.result ? 'Passed' : 'Failed') + "\n";
|
||||
|
||||
if (data.comments) {
|
||||
message += "Comments: \n";
|
||||
message += data.comments;
|
||||
}
|
||||
|
||||
var server = email.server.connect({
|
||||
user: config.email.user,
|
||||
password: config.email.password,
|
||||
host: 'smtp.gmail.com',
|
||||
ssl: true
|
||||
});
|
||||
|
||||
var msg = {
|
||||
text: message,
|
||||
from: config.email.user,
|
||||
to: 'parts@atlanticbiomedical.com',
|
||||
subject: subject
|
||||
};
|
||||
server.send(msg);
|
||||
});
|
||||
}
|
||||
|
||||
return {
|
||||
index: function(req, res, next) {
|
||||
log.info('test_runs.index');
|
||||
|
||||
TestRun.find({ deleted: false })
|
||||
.exec(returnResult(res));
|
||||
},
|
||||
|
||||
get: function(req, res, next) {
|
||||
var id = req.param('test_run_id');
|
||||
|
||||
log.info("test_runs.get %s", id);
|
||||
|
||||
TestRun.findById(id)
|
||||
.exec(returnResult(res));
|
||||
},
|
||||
|
||||
create: function(req, res, next) {
|
||||
log.info("test_runs.create %j", res.body);
|
||||
|
||||
var testRun = new TestRun(req.body);
|
||||
|
||||
if (!req.body.result) {
|
||||
sendReportEmail(req.body);
|
||||
}
|
||||
|
||||
testRun.save(returnResult(res));
|
||||
},
|
||||
|
||||
update: function(req, res, next) {
|
||||
var id = req.param('test_run_id');
|
||||
log.info('test_runs.update %s %j', id, req.body);
|
||||
|
||||
TestRun.findById(id, function(err, testRun) {
|
||||
if (err) {
|
||||
log.error("Error: %s", err);
|
||||
res.json(500, err);
|
||||
} else if (!testRun) {
|
||||
res.json(404, 'Unknown TestRun: %s', id);
|
||||
} else {
|
||||
_.assign(testRun, req.body);
|
||||
testRun.save(returnResult(res, testRun));
|
||||
}
|
||||
});
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user