anthtrigger
Version:
Trigger events via http service
86 lines (75 loc) • 1.64 kB
text/coffeescript
Thenjs = require 'thenjs'
logsModel = require '../scriptLogs/logsModel'
moment = require 'moment'
exports.list = (crital={})->
Thenjs (cont)->
logsModel
.find crital, (err, list)->
return cont(err) if err
cont(null, list)
exports.listByPage = (crital, opts)->
Thenjs (cont)->
logsModel
.find crital, {
_id: 1
snapshot: 1
startAt: 1
endAt: 1
}, opts, (err, list)->
return cont(err) if err
cont(null, list)
.then (cont, list)->
# Get total count
logsModel.count crital, (err, count)->
return cont(err) if err
cont(null, list, count)
exports.count = (crital)->
Thenjs (cont)->
logsModel
.count crital, (err, count)->
return cont(err) if err
cont(null, count)
exports.findById = (id)->
Thenjs (cont)->
logsModel
.findById id, (err, doc)->
cont(err, doc)
exports.getRecentLog = (count)->
Thenjs (cont)->
logsModel
.find {}, {
_id: 1
snapshot: 1
runByUser: 1
startAt: 1
endAt: 1
}, {
sort: '-startAt'
limit: count
}, (err, list)->
cont(null, list)
exports.getUsageStats = (lastDate)->
Thenjs (cont)->
logsModel
.aggregate {
$group: {
_id: {
year: { $year: "$startAt" }
month: { $month: "$startAt" }
day: { $dayOfMonth: "$startAt" }
},
count: { $sum: 1 }
}
}
.sort({ _id: 1 })
.exec (err, result)->
result.map (v)->
v.date = moment({
year: v._id.year
month: v._id.month-1
day: v._id.day
}).toDate()
v._id = null
delete v._id
cont(err, result)
return