From b88c78e3cf2bef22aa2f1c4d0bf305e303bc15f0 Mon Sep 17 00:00:00 2001 From: Koren Lev Date: Thu, 27 Jul 2017 16:42:15 +0300 Subject: adding calipso ui Change-Id: Ifa6f63daebb07f45580f747341960e898fdb00c4 Signed-off-by: Koren Lev --- ui/imports/api/clique-types/methods.js | 108 +++++++++++++++++++++++++++++++++ 1 file changed, 108 insertions(+) create mode 100644 ui/imports/api/clique-types/methods.js (limited to 'ui/imports/api/clique-types/methods.js') diff --git a/ui/imports/api/clique-types/methods.js b/ui/imports/api/clique-types/methods.js new file mode 100644 index 0000000..a62c22f --- /dev/null +++ b/ui/imports/api/clique-types/methods.js @@ -0,0 +1,108 @@ +///////////////////////////////////////////////////////////////////////////////////////// +// 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 { ValidatedMethod } from 'meteor/mdg:validated-method'; +import * as R from 'ramda'; +import { Roles } from 'meteor/alanning:roles'; + +import { CliqueTypes } from './clique-types'; + +export const insert = new ValidatedMethod({ + name: 'clique_types.insert', + validate: CliqueTypes.simpleSchema() + .pick([ + 'environment', + 'focal_point_type', + 'link_types', + 'link_types.$', + 'name', + ]).validator({ clean: true, filter: false }), + run({ + environment, + focal_point_type, + link_types, + name, + }) { + if (! Roles.userIsInRole(Meteor.userId(), 'manage-clique-types', Roles.DEFAULT_GROUP)) { + throw new Meteor.Error('unauthorized for adding clique type'); + } + + let cliqueType = CliqueTypes.schema.clean({}); + + cliqueType = R.merge(cliqueType, { + environment, + focal_point_type, + link_types, + name, + }); + + CliqueTypes.insert(cliqueType); + } +}); + +export const remove = new ValidatedMethod({ + name: 'clique_types.remove', + validate: CliqueTypes.simpleSchema() + .pick([ + '_id', + ]).validator({ clean: true, filter: false }), + run({ + _id + }) { + + if (! Roles.userIsInRole(Meteor.userId(), 'manage-clique-types', Roles.DEFAULT_GROUP)) { + throw new Meteor.Error('unauthorized for removing clique type'); + } + + let cliqueType = CliqueTypes.findOne({ _id: _id }); + console.log('clique type for remove: ', cliqueType); + + CliqueTypes.remove({ _id: _id }); + } +}); + +export const update = new ValidatedMethod({ + name: 'clique_types.update', + validate: CliqueTypes.simpleSchema() + .pick([ + '_id', + 'environment', + 'focal_point_type', + 'link_types', + 'link_types.$', + 'name', + ]).validator({ clean: true, filter: false }), + run({ + _id, + environment, + focal_point_type, + link_types, + name, + }) { + if (! Roles.userIsInRole(Meteor.userId(), 'manage-clique-types', Roles.DEFAULT_GROUP)) { + throw new Meteor.Error('unauthorized for updating clique type'); + } + + let cliqueType = CliqueTypes.findOne({ _id: _id }); + console.log('clique type for remove: ', cliqueType); + + cliqueType = R.merge(R.pick([ + 'environment', + 'focal_point_type', + 'link_types', + 'name', ], + cliqueType), { + environment, + focal_point_type, + link_types, + name, + }); + + CliqueTypes.update({ _id: _id }, { $set: cliqueType }); + } +}); -- cgit 1.2.3-korg