1
0
Fork 0
mirror of https://github.com/YunoHost-Apps/rocketchat_ynh.git synced 2024-09-03 20:16:25 +02:00
rocketchat_ynh/sources/programs/server/packages/konecty_mongo-counter.js
2016-04-29 16:32:48 +02:00

120 lines
12 KiB
JavaScript

(function () {
/* Imports */
var Meteor = Package.meteor.Meteor;
var MongoInternals = Package.mongo.MongoInternals;
var Mongo = Package.mongo.Mongo;
/* Package-scope variables */
var __coffeescriptShare, incrementCounter, decrementCounter, setCounter, deleteCounters;
(function(){
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// //
// packages/konecty_mongo-counter/packages/konecty_mongo-counter.js //
// //
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//
(function () { // 1
// 2
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// //
// packages/konecty:mongo-counter/counter.coffee.js //
// //
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//
__coffeescriptShare = typeof __coffeescriptShare === 'object' ? __coffeescriptShare : {}; var share = __coffeescriptShare;
var callCounter, getCounterCollection, _decrementCounter, _deleteCounters, _incrementCounter, _setCounter,
__slice = [].slice; // 11
// 12
getCounterCollection = function(collection) { // 13
return collection.rawCollection(); // 14
}; // 15
// 16
callCounter = function() { // 17
var Counters, args, collection, future, method, _ref; // 18
method = arguments[0], collection = arguments[1], args = 3 <= arguments.length ? __slice.call(arguments, 2) : []; // 19
Counters = getCounterCollection(collection); // 20
if (Meteor.wrapAsync != null) { // 21
return Meteor.wrapAsync(_.bind(Counters[method], Counters)).apply(null, args); // 22
} else { // 23
future = new (Npm.require(Npm.require('path').join('fibers', 'future')))(); // 24
(_ref = Counters[method]).call.apply(_ref, [Counters].concat(__slice.call(args), [future.resolver()])); // 25
return future.wait(); // 26
} // 27
}; // 28
// 29
_deleteCounters = function(collection) { // 30
return callCounter('remove', collection, {}, { // 31
safe: true // 32
}); // 33
}; // 34
// 35
_incrementCounter = function(collection, counterName, amount) { // 36
var newDoc; // 37
if (amount == null) { // 38
amount = 1; // 39
} // 40
newDoc = callCounter('findAndModify', collection, { // 41
_id: counterName // 42
}, null, { // 43
$inc: { // 44
next_val: amount // 45
} // 46
}, { // 47
"new": true, // 48
upsert: true // 49
}); // 50
return newDoc.next_val; // 51
}; // 52
// 53
_decrementCounter = function(collection, counterName, amount) { // 54
if (amount == null) { // 55
amount = 1; // 56
} // 57
return _incrementCounter(collection, counterName, -amount); // 58
}; // 59
// 60
_setCounter = function(collection, counterName, value) { // 61
callCounter('update', collection, { // 62
_id: counterName // 63
}, { // 64
$set: { // 65
next_val: value // 66
} // 67
}); // 68
}; // 69
// 70
if (typeof Package !== "undefined" && Package !== null) { // 71
incrementCounter = _incrementCounter; // 72
decrementCounter = _decrementCounter; // 73
setCounter = _setCounter; // 74
deleteCounters = _deleteCounters; // 75
} else { // 76
this.incrementCounter = _incrementCounter; // 77
this.decrementCounter = _decrementCounter; // 78
this.setCounter = _setCounter; // 79
this.deleteCounters = _deleteCounters; // 80
} // 81
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// 83
}).call(this); // 84
// 85
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
}).call(this);
/* Exports */
if (typeof Package === 'undefined') Package = {};
Package['konecty:mongo-counter'] = {
incrementCounter: incrementCounter,
decrementCounter: decrementCounter,
setCounter: setCounter,
deleteCounters: deleteCounters
};
})();
//# sourceMappingURL=konecty_mongo-counter.js.map