Machines = new Mongo.Collection("machines"); Meteor.startup(function() { Meteor.methods({ updateConfiguration: function (machineId, configId, data) { console.log('saving !!!!', machineId, configId, data); Machines.update({ machineId: machineId, "configurations._id": configId }, { $set: { "configurations.$.content": data.content, "configurations.$.filePath": data.filePath, "configurations.$.description": data.description } }); return "ok"; } }); var bodyParser = Meteor.npmRequire('body-parser'); Picker.middleware(bodyParser.urlencoded({ extended: false })); Picker.middleware(bodyParser.json()); // code to run on server at startup Picker.route('/api/machines', function(params, req, res, next) { var allMachines = Machines.find({}); res.end(JSON.stringify(allMachines.fetch())); }); Picker.route('/api/machine', function(params, req, res, next) { console.log(params, req.body); // Hostname string // Platform string // Architecture string // MachineGuid string var data = req.body; Machines.update({ machineId: data.MachineGuid }, { $set: { hostname: data.Hostname, status: 'OK', platform: data.Platform, architecture: data.Architecture }}, {upsert: true}); // return res.end()"ok"; res.end("ok"); }); Picker.route('/api/templates/:type', function(params, req, res, next) { var type = params.type; var fs = Meteor.npmRequire('fs'); var path = Meteor.npmRequire('path'); var template = Async.runSync(function(done) { // github.gists.getFromUser({user: 'arunoda'}, function(err, data) { // done(null, data); // }); fs.readFile(path.resolve('../public/configs/' + type + '.conf'), function(err, data) { console.log('done!', err, data); done(null, data); }); }); console.log('done received!', template); res.end(template.result); }); // Global API configuration // Restivus.configure({ // prettyJson: true, // useAuth: false // }); // // Restivus.addCollection(Machines); // Restivus.addRoute('post/:_id', { // get: function() { // var id = this.urlParams._id; // "5" // return { // hamo: 1 // } // } // }); // // Restivus.addRoute('/api/templates/:type', { // // }, { // get: { // action: function() { // var type = this.urlParams.type; // var fs = Meteor.npmRequire('fs'); // // var template = Async.runSync(function(done) { // // github.gists.getFromUser({user: 'arunoda'}, function(err, data) { // // done(null, data); // // }); // fs.readFile('../public/configs/' + type + '.conf', function(err, data) { // done(null, data); // }); // // }); // // return template.result; // } // } // }) // Restivus.addRoute('/api/machines', { // // authRequired: false // }, { // get: { // action: function() { // var allMaMachines = Machines.find({}); // return { // meho:1, // data: allMaMachines // }; // } // // var post = Posts.findOne(this.urlParams.id); // // if (post) { // // return {status: 'success', data: post}; // // } // // return { // // statusCode: 404, // // body: {status: 'fail', message: 'Post not found'} // // }; // } // }); });