UNPKG

el-borracho-stats

Version:

REST and SSE API and worker producing daily and all-time totals for Bull queues

51 lines (35 loc) 1.26 kB
errify = require "errify" class ElBorrachoStatsController constructor: ({@redis, @namespace}) -> @Store = require "./models/stats" @stores = {} @store = new @Store {@redis, @namespace} # GET "/stats/history" history: (req, res, next) => ideally = errify next {start_date, days_previous} = req.query await @store.fetchHistoryForAll start_date, days_previous, ideally defer stats res.json stats # GET "/stats" total: (req, res, next) => ideally = errify next await @store.fetchForAll ideally defer total res.json total # GET "/:queue/stats/history" queueHistory: (req, res, next) => ideally = errify next {queue} = req.param {start_date, days_previous} = req.query store = @storeCache queue await store.fetchHistoryForQueue queue, start_date, days_previous, ideally defer stats res.json stats # GET "/:queue/stats" queueTotal: (req, res, next) => ideally = errify next {queue} = req.param store = @storeCache queue await store.fetchForQueue queue, ideally defer total res.json total storeCache: (queuename) -> @stores[queuename] or= new @Store {@redis, @namespace, queuename} module.exports = ElBorrachoStatsController