aboutsummaryrefslogtreecommitdiffstats
path: root/ui/imports/api/configurations
diff options
context:
space:
mode:
Diffstat (limited to 'ui/imports/api/configurations')
-rw-r--r--ui/imports/api/configurations/configurations.js29
-rw-r--r--ui/imports/api/configurations/methods.js39
-rw-r--r--ui/imports/api/configurations/server/publications.js21
3 files changed, 89 insertions, 0 deletions
diff --git a/ui/imports/api/configurations/configurations.js b/ui/imports/api/configurations/configurations.js
new file mode 100644
index 0000000..067b69f
--- /dev/null
+++ b/ui/imports/api/configurations/configurations.js
@@ -0,0 +1,29 @@
+/////////////////////////////////////////////////////////////////////////////////////////
+// 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 { Mongo } from 'meteor/mongo';
+import { SimpleSchema } from 'meteor/aldeed:simple-schema';
+//import * as R from 'ramda';
+
+export const Configurations = new Mongo.Collection('configurations', { idGeneration: 'MONGO' });
+
+let schema = {
+ _id: { type: { _str: { type: String, regEx: SimpleSchema.RegEx.Id } } },
+ user_id: {
+ type: String,
+ },
+ messages_view_backward_delta: {
+ type: Number,
+ minCount: 1,
+ defaultValue: '1209600000', // 2 weeks
+ }
+};
+
+let simpleSchema = new SimpleSchema(schema);
+Configurations.schema = simpleSchema;
+Configurations.attachSchema(Configurations.schema);
diff --git a/ui/imports/api/configurations/methods.js b/ui/imports/api/configurations/methods.js
new file mode 100644
index 0000000..7366e3e
--- /dev/null
+++ b/ui/imports/api/configurations/methods.js
@@ -0,0 +1,39 @@
+/////////////////////////////////////////////////////////////////////////////////////////
+// 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 { Configurations } from '/imports/api/configurations/configurations';
+import * as R from 'ramda';
+
+export const save = new ValidatedMethod({
+ name: 'configurations.save',
+ validate: Configurations.simpleSchema()
+ .pick([
+ 'messages_view_backward_delta'
+ ]).validator({ clean: true, filter: false }),
+ run({
+ messages_view_backward_delta
+ }) {
+
+ let userId = this.userId;
+ let conf = Configurations.findOne({ user_id: userId });
+
+ if (conf) {
+ Configurations.update({ _id: conf._id}, { $set: {
+ messages_view_backward_delta: messages_view_backward_delta
+ }});
+ } else {
+ let item = Configurations.schema.clean({});
+ item = R.merge(item, {
+ user_id: userId,
+ messages_view_backward_delta: messages_view_backward_delta
+ });
+ Configurations.insert(item);
+ }
+ }
+});
diff --git a/ui/imports/api/configurations/server/publications.js b/ui/imports/api/configurations/server/publications.js
new file mode 100644
index 0000000..fe9f6fd
--- /dev/null
+++ b/ui/imports/api/configurations/server/publications.js
@@ -0,0 +1,21 @@
+/////////////////////////////////////////////////////////////////////////////////////////
+// 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 { Configurations } from '../configurations.js';
+
+Meteor.publish('configurations?user', function () {
+ console.log('server subscribtion: configurations?user');
+
+ let userId = this.userId;
+
+ let query = { user_id: userId };
+ console.log('-query: ', query);
+ return Configurations.find(query);
+});