diff options
author | Koren Lev <korenlev@gmail.com> | 2017-07-27 16:42:15 +0300 |
---|---|---|
committer | Koren Lev <korenlev@gmail.com> | 2017-07-27 16:42:15 +0300 |
commit | b88c78e3cf2bef22aa2f1c4d0bf305e303bc15f0 (patch) | |
tree | ffa30a6e1511d72562d8772b8700cda52b2752a1 /ui/imports/api/messages/server | |
parent | b70483739d1f6f4f0d31987ed2e4d1e30d71d579 (diff) |
adding calipso ui
Change-Id: Ifa6f63daebb07f45580f747341960e898fdb00c4
Signed-off-by: Koren Lev <korenlev@gmail.com>
Diffstat (limited to 'ui/imports/api/messages/server')
-rw-r--r-- | ui/imports/api/messages/server/methods.js | 49 | ||||
-rw-r--r-- | ui/imports/api/messages/server/publications.js | 98 |
2 files changed, 147 insertions, 0 deletions
diff --git a/ui/imports/api/messages/server/methods.js b/ui/imports/api/messages/server/methods.js new file mode 100644 index 0000000..119e6b0 --- /dev/null +++ b/ui/imports/api/messages/server/methods.js @@ -0,0 +1,49 @@ +///////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2017 Koren Lev (Cisco Systems), Yaron Yogev (Cisco Systems) and others / +// / +// All rights reserved. This program and the accompanying materials / +// are made available under the terms of the Apache License, Version 2.0 / +// which accompanies this distribution, and is available at / +// http://www.apache.org/licenses/LICENSE-2.0 / +///////////////////////////////////////////////////////////////////////////////////////// +import * as R from 'ramda'; +import { Messages } from '/imports/api/messages/messages'; + +Meteor.methods({ + 'messages/get?level&env&page&amountPerPage&sortField&sortDirection': function ( + level, env, page, amountPerPage, sortField, sortDirection) { + + logMethodCall('messages/get?level&env&page&amountPerPage&sortField&sortDirection', + {level, env, page, amountPerPage}); + + this.unblock(); + + let skip = (page - 1) * amountPerPage; + + let query = {}; + let sortParams = {}; + + query = R.ifElse(R.isNil, R.always(query),R.assoc('environment', R.__, query))(env); + query = R.ifElse(R.isNil, R.always(query),R.assoc('level', R.__, query))(level); + + sortParams = R.ifElse(R.isNil, R.always(sortParams), + R.assoc(R.__, sortDirection, sortParams))(sortField); + + console.log('sort params:', sortParams); + + let qParams = { + limit: amountPerPage, + skip: skip, + sort: sortParams, + }; + + return Messages.find(query, qParams).fetch(); + } +}); + +function logMethodCall(name, args) { + console.log(`method call: ${name}`); + R.forEachObjIndexed((value, key) => { + console.log(`${key}: ${R.toString(value)}`); + }, args); +} diff --git a/ui/imports/api/messages/server/publications.js b/ui/imports/api/messages/server/publications.js new file mode 100644 index 0000000..13c7c50 --- /dev/null +++ b/ui/imports/api/messages/server/publications.js @@ -0,0 +1,98 @@ +///////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2017 Koren Lev (Cisco Systems), Yaron Yogev (Cisco Systems) and others / +// / +// All rights reserved. This program and the accompanying materials / +// are made available under the terms of the Apache License, Version 2.0 / +// which accompanies this distribution, and is available at / +// http://www.apache.org/licenses/LICENSE-2.0 / +///////////////////////////////////////////////////////////////////////////////////////// +import { Meteor } from 'meteor/meteor'; +//import { Counts } from 'meteor/tmeasday:publish-counts'; +import { Counter } from 'meteor/natestrauser:publish-performant-counts'; +import { Messages } from '../messages.js'; +import * as R from 'ramda'; + +Meteor.publish('messages', function () { + console.log('server subscribtion to: messages'); + //return Inventory.find({$where: 'this.id_path.match('^/WebEX-Mirantis@Cisco/')'}); + //return Inventory.find({ 'show_in_tree': true }); + return Messages.find({}); +}); + +Meteor.publish('messages?_id', function (_id) { + console.log('server subscribtion to: messages?_id'); + console.log('_id', _id); + + let query = { _id: _id }; + return Messages.find(query); +}); + +Meteor.publish('messages?level', function (level) { + var query = { + level: level + }; + + /* + var counterName = 'messages?level!counter?' + + 'level=' + level; + + console.log('server subscription to: ' + counterName); + Counts.publish(this, counterName, Messages.find(query)); + */ + + console.log('server subscribtion to: messages?level'); + console.log('- level: ' + level); + return Messages.find(query); +}); + +Meteor.publish('messages?env+level', function (env, level) { + var query = { + environment: env, + level: level + }; + /* + var counterName = 'messages?env+level!counter?env=' + + env + '&level=' + level; + + console.log('server subscription to: messages - counter'); + console.log(' - name: ' + counterName); + Counts.publish(this, counterName, Messages.find(query)); + */ + + console.log('server subscribtion to: messages'); + console.log('- env: ' + env); + console.log('- level: ' + level); + return Messages.find(query); +}); + +Meteor.publish('messages/count', function () { + const counterName = `messages/count`; + console.log(`subscribe - counter: ${counterName}`); + + return new Counter(counterName, Messages.find({ })); +}); + +Meteor.publish('messages/count?env', function (env) { + const counterName = `messages/count?env`; + console.log(`subscribe - counter: ${counterName}`); + + let query = {}; + query = R.ifElse(R.isNil, R.always(query), R.assoc('environment', R.__, query))(env); + return new Counter(counterName, Messages.find(query)); +}); + +Meteor.publish('messages/count?level', function (level) { + const counterName = `messages/count?level=${level}`; + console.log(`subscribe - counter: ${counterName}`); + + return new Counter(counterName, Messages.find({ level: level })); +}); + +Meteor.publish('messages/count?level&env', function (level, env) { + const counterName = `messages/count?level=${level}&env=${env}`; + console.log(`subscribe - counter: ${counterName}`); + + let query = { level: level }; + query = R.ifElse(R.isNil, R.always(query), R.assoc('environment', R.__, query))(env); + + return new Counter(counterName, Messages.find(query)); }); |