mirror of
https://github.com/atlanticbiomedical/biomedjs.git
synced 2025-07-02 00:47:26 -04:00
latest changes
This commit is contained in:
132
app/controllers/devices.js
Normal file
132
app/controllers/devices.js
Normal file
@ -0,0 +1,132 @@
|
||||
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
|
||||
});
|
||||
});
|
||||
});
|
||||
};
|
16
app/model/device.js
Normal file
16
app/model/device.js
Normal file
@ -0,0 +1,16 @@
|
||||
var mongoose = require('mongoose')
|
||||
Schema = mongoose.Schema,
|
||||
ObjectId = Schema.ObjectId;
|
||||
|
||||
var deviceSchema = new Schema({
|
||||
deviceType: String,
|
||||
make: String,
|
||||
model: String,
|
||||
technicalData: String,
|
||||
links: String,
|
||||
partsRecommended: String,
|
||||
images: [{ type: String }],
|
||||
deleted: { type: Boolean, default: false }
|
||||
});
|
||||
|
||||
module.exports = mongoose.model('Device', deviceSchema);
|
@ -60,6 +60,10 @@ html(lang="en", ng-app="biomed", ng-controller="PageCtrl")
|
||||
a(href='/accounting')
|
||||
| Accounting
|
||||
|
||||
li(data-match-route='/devices.*')
|
||||
a(href='/devices')
|
||||
| Devices
|
||||
|
||||
li(data-match-route='/posts.*', ng-show="accountHasPermission('system.admin')")
|
||||
a(href='/posts')
|
||||
| Posts
|
||||
|
Reference in New Issue
Block a user