UNPKG

ticketman

Version:

A simple pull-based job/ticket system contians a centeral ticket dispatcher and distributed workers. This system is written in NodeJS, runing on MongoDB

77 lines (69 loc) 1.89 kB
// Generated by CoffeeScript 1.12.5 (function() { var Worker, mongoose; mongoose = require('mongoose'); Worker = mongoose.model('Worker'); exports.index = function(req, res, next) { Worker.find(function(err, workers) { if (err != null) { return next(err); } res.render('workers/index', { workers: workers }); }); }; exports.create = function(req, res, next) { var ticket; ticket = new Worker(req.body); ticket.save((function(_this) { return function(err) { if (err != null) { return next(err); } switch (req.params.format) { case 'json': res.json(ticket); break; default: res.redirect("/workers"); } }; })(this)); }; exports.updateAt = function(req, res, next) { var signature, update, workerId; signature = req.headers['ticketman-authenticate']; if (!((signature != null) && signature.indexOf("Ticketman") === 0)) { return next(new Error("signature checking failed")); } workerId = (signature.match(/Ticketman ([^:]+)/) || EMPTY_ARRAY)[1]; update = { updated_at: Date.now() }; return Worker.findByIdAndUpdate(workerId, update, function(err, worker) { if (err != null) { return next(err); } return next(); }); }; exports.trashed = function(req, res, next) { var workerId; workerId = req.body.worker_id; return Worker.findById(workerId, function(err, worker) { if (err != null) { return next(err); } if (!worker) { return next(404); } return worker[worker.trashed_at != null ? "untrash" : "trash"](function(err) { if (err != null) { return next(err); } return res.redirect("/workers"); }); }); }; }).call(this);