From e42d5012e23ec4456bd28503bd91b7b5660659bf Mon Sep 17 00:00:00 2001 From: Martin Schoeler Date: Thu, 23 Mar 2017 17:17:07 -0300 Subject: [PATCH] Convert Statistics Package to JS (#6447) * convert statistics package to js * amend * fix code style --- .../lib/rocketchat.coffee | 1 - .../rocketchat-statistics/lib/rocketchat.js | 1 + packages/rocketchat-statistics/package.js | 9 ++++--- .../server/functions/save.coffee | 6 ----- .../server/functions/save.js | 6 +++++ .../server/methods/getStatistics.coffee | 13 ---------- .../server/methods/getStatistics.js | 17 +++++++++++++ .../server/models/Statistics.coffee | 19 --------------- .../server/models/Statistics.js | 24 +++++++++++++++++++ 9 files changed, 52 insertions(+), 44 deletions(-) delete mode 100644 packages/rocketchat-statistics/lib/rocketchat.coffee create mode 100644 packages/rocketchat-statistics/lib/rocketchat.js delete mode 100644 packages/rocketchat-statistics/server/functions/save.coffee create mode 100644 packages/rocketchat-statistics/server/functions/save.js delete mode 100644 packages/rocketchat-statistics/server/methods/getStatistics.coffee create mode 100644 packages/rocketchat-statistics/server/methods/getStatistics.js delete mode 100644 packages/rocketchat-statistics/server/models/Statistics.coffee create mode 100644 packages/rocketchat-statistics/server/models/Statistics.js diff --git a/packages/rocketchat-statistics/lib/rocketchat.coffee b/packages/rocketchat-statistics/lib/rocketchat.coffee deleted file mode 100644 index 3111fcc9479d..000000000000 --- a/packages/rocketchat-statistics/lib/rocketchat.coffee +++ /dev/null @@ -1 +0,0 @@ -RocketChat.statistics = {} diff --git a/packages/rocketchat-statistics/lib/rocketchat.js b/packages/rocketchat-statistics/lib/rocketchat.js new file mode 100644 index 000000000000..6a4543fd8c9f --- /dev/null +++ b/packages/rocketchat-statistics/lib/rocketchat.js @@ -0,0 +1 @@ +RocketChat.statistics = {}; diff --git a/packages/rocketchat-statistics/package.js b/packages/rocketchat-statistics/package.js index 430290140bce..5e384cad54f4 100644 --- a/packages/rocketchat-statistics/package.js +++ b/packages/rocketchat-statistics/package.js @@ -9,16 +9,15 @@ Package.onUse(function(api) { api.use([ 'mongo', 'ecmascript', - 'coffeescript', 'rocketchat:lib' ]); // Statistics - api.addFiles('lib/rocketchat.coffee', [ 'client', 'server' ]); + api.addFiles('lib/rocketchat.js', [ 'client', 'server' ]); api.addFiles([ - 'server/models/Statistics.coffee', + 'server/models/Statistics.js', 'server/functions/get.js', - 'server/functions/save.coffee', - 'server/methods/getStatistics.coffee' + 'server/functions/save.js', + 'server/methods/getStatistics.js' ], 'server'); }); diff --git a/packages/rocketchat-statistics/server/functions/save.coffee b/packages/rocketchat-statistics/server/functions/save.coffee deleted file mode 100644 index 9752d42f43c8..000000000000 --- a/packages/rocketchat-statistics/server/functions/save.coffee +++ /dev/null @@ -1,6 +0,0 @@ -RocketChat.statistics.save = -> - statistics = RocketChat.statistics.get() - statistics.createdAt = new Date - RocketChat.models.Statistics.insert statistics - return statistics - diff --git a/packages/rocketchat-statistics/server/functions/save.js b/packages/rocketchat-statistics/server/functions/save.js new file mode 100644 index 000000000000..fcaf7854d4b0 --- /dev/null +++ b/packages/rocketchat-statistics/server/functions/save.js @@ -0,0 +1,6 @@ +RocketChat.statistics.save = function() { + const statistics = RocketChat.statistics.get(); + statistics.createdAt = new Date; + RocketChat.models.Statistics.insert(statistics); + return statistics; +}; diff --git a/packages/rocketchat-statistics/server/methods/getStatistics.coffee b/packages/rocketchat-statistics/server/methods/getStatistics.coffee deleted file mode 100644 index 03e39ba22025..000000000000 --- a/packages/rocketchat-statistics/server/methods/getStatistics.coffee +++ /dev/null @@ -1,13 +0,0 @@ -Meteor.methods - getStatistics: (refresh) -> - if not Meteor.userId() - throw new Meteor.Error('error-invalid-user', "Invalid user", { method: 'getStatistics' }) - - unless RocketChat.authz.hasPermission(Meteor.userId(), 'view-statistics') is true - throw new Meteor.Error('error-not-allowed', "Not allowed", { method: 'getStatistics' }) - - if refresh - return RocketChat.statistics.save() - else - return RocketChat.models.Statistics.findLast() - diff --git a/packages/rocketchat-statistics/server/methods/getStatistics.js b/packages/rocketchat-statistics/server/methods/getStatistics.js new file mode 100644 index 000000000000..683c6da2972d --- /dev/null +++ b/packages/rocketchat-statistics/server/methods/getStatistics.js @@ -0,0 +1,17 @@ +Meteor.methods({ + getStatistics(refresh) { + if (!Meteor.userId()) { + throw new Meteor.Error('error-invalid-user', 'Invalid user', { method: 'getStatistics' }); + } + + if (RocketChat.authz.hasPermission(Meteor.userId(), 'view-statistics') !== true) { + throw new Meteor.Error('error-not-allowed', 'Not allowed', { method: 'getStatistics' }); + } + + if (refresh) { + return RocketChat.statistics.save(); + } else { + return RocketChat.models.Statistics.findLast(); + } + } +}); diff --git a/packages/rocketchat-statistics/server/models/Statistics.coffee b/packages/rocketchat-statistics/server/models/Statistics.coffee deleted file mode 100644 index 4eb8f650b9c1..000000000000 --- a/packages/rocketchat-statistics/server/models/Statistics.coffee +++ /dev/null @@ -1,19 +0,0 @@ -RocketChat.models.Statistics = new class extends RocketChat.models._Base - constructor: -> - super('statistics') - - @tryEnsureIndex { 'createdAt': 1 } - - # FIND ONE - findOneById: (_id, options) -> - query = - _id: _id - - return @findOne query, options - - findLast: -> - options = - sort: - createdAt: -1 - limit: 1 - return @find({}, options).fetch()?[0] diff --git a/packages/rocketchat-statistics/server/models/Statistics.js b/packages/rocketchat-statistics/server/models/Statistics.js new file mode 100644 index 000000000000..f4cb11c9fee8 --- /dev/null +++ b/packages/rocketchat-statistics/server/models/Statistics.js @@ -0,0 +1,24 @@ +RocketChat.models.Statistics = new class extends RocketChat.models._Base { + constructor() { + super('statistics'); + + this.tryEnsureIndex({ 'createdAt': 1 }); + } + + // FIND ONE + findOneById(_id, options) { + const query = { _id }; + return this.findOne(query, options); + } + + findLast() { + const options = { + sort: { + createdAt: -1 + }, + limit: 1 + }; + const records = this.find({}, options).fetch(); + return records && records[0]; + } +};