mirror of
https://github.com/atlanticbiomedical/biomedjs.git
synced 2025-07-02 00:47:26 -04:00
133 lines
3.4 KiB
JavaScript
133 lines
3.4 KiB
JavaScript
![]() |
var mongoose = require('mongoose'),
|
||
|
Device = mongoose.model('Device');
|
||
|
|
||
|
var _ = require('lodash');
|
||
|
var md5 = require('MD5');
|
||
|
|
||
|
var log = require('log4node');
|
||
|
|
||
|
exports.index = function(req, res) {
|
||
|
log.info('devices.index');
|
||
|
var query = Device.find({ deleted: false })
|
||
|
.exec(function(err, results) {
|
||
|
if (err) {
|
||
|
res.json(500, err);
|
||
|
} else {
|
||
|
res.json(results);
|
||
|
}
|
||
|
});
|
||
|
};
|
||
|
|
||
|
exports.get = function(req, res, next) {
|
||
|
var id = req.param('device_id');
|
||
|
|
||
|
log.info("devices.get %s", id);
|
||
|
Device.findById(id)
|
||
|
.exec(function(err, device) {
|
||
|
if (err) return next(err);
|
||
|
if (!device) return next(new Error('failed to load device ' + id));
|
||
|
|
||
|
res.json(device);
|
||
|
});
|
||
|
};
|
||
|
|
||
|
exports.deviceTypes = function(req, res, next) {
|
||
|
log.info("devices.deviceTypes");
|
||
|
|
||
|
var query = Device.find({ deleted: false })
|
||
|
.select('deviceType')
|
||
|
.exec(function(err, results) {
|
||
|
if (err) {
|
||
|
res.json(500, err);
|
||
|
} else {
|
||
|
res.json(_.uniq(_.pluck(results, 'deviceType')));
|
||
|
}
|
||
|
});
|
||
|
};
|
||
|
|
||
|
exports.makes = function(req, res, next) {
|
||
|
log.info("devices.makes");
|
||
|
|
||
|
var query = Device.find({ deleted: false })
|
||
|
.select('make')
|
||
|
.exec(function(err, results) {
|
||
|
if (err) {
|
||
|
res.json(500, err);
|
||
|
} else {
|
||
|
res.json(_.uniq(_.pluck(results, 'make')));
|
||
|
}
|
||
|
});
|
||
|
};
|
||
|
|
||
|
exports.models = function(req, res, next) {
|
||
|
log.info("devices.models");
|
||
|
|
||
|
var query = Device.find({ deleted: false })
|
||
|
.select('model')
|
||
|
.exec(function(err, results) {
|
||
|
if (err) {
|
||
|
res.json(500, err);
|
||
|
} else {
|
||
|
res.json(_.uniq(_.pluck(results, 'model')));
|
||
|
}
|
||
|
});
|
||
|
};
|
||
|
|
||
|
exports.create = function(req, res, next) {
|
||
|
log.info("devices.create %j", res.body);
|
||
|
|
||
|
var device = new Device({
|
||
|
deviceType: req.body.deviceType,
|
||
|
make: req.body.make,
|
||
|
model: req.body.model,
|
||
|
technicalData: req.body.technicalData,
|
||
|
links: req.body.links,
|
||
|
partsRecommended: req.body.partsRecommended,
|
||
|
images: req.body.images
|
||
|
});
|
||
|
|
||
|
return device.save(function(err) {
|
||
|
if (err)
|
||
|
log.error("Error: %s", err);
|
||
|
return res.json(device);
|
||
|
});
|
||
|
};
|
||
|
|
||
|
exports.update = function(req, res, next) {
|
||
|
var id = req.param('device_id');
|
||
|
log.info('devices.update %s %j', id, req.body);
|
||
|
|
||
|
return Device.findById(id, function(err, device) {
|
||
|
device.deviceType = req.body.deviceType;
|
||
|
device.make = req.body.make;
|
||
|
device.model = req.body.model;
|
||
|
device.technicalData = req.body.technicalData;
|
||
|
device.links = req.body.links;
|
||
|
device.partsRecommended = req.body.partsRecommended;
|
||
|
device.images = req.body.images;
|
||
|
|
||
|
return device.save(function(err) {
|
||
|
if (err)
|
||
|
log.error("Error: %s", err);
|
||
|
return res.json(device);
|
||
|
});
|
||
|
});
|
||
|
};
|
||
|
|
||
|
exports.upload = function(req, res, next) {
|
||
|
var path = req.files.file.path;
|
||
|
|
||
|
fs.readFile(path, function(err, data) {
|
||
|
var hash = md5(data);
|
||
|
|
||
|
fs.writeFile('/srv/biomed-site/images/devices/' + hash, data, function(err) {
|
||
|
if (err)
|
||
|
log.error("Error: %s", err);
|
||
|
|
||
|
return res.json({
|
||
|
filename: hash
|
||
|
});
|
||
|
});
|
||
|
});
|
||
|
};
|