aboutsummaryrefslogtreecommitdiffstats
path: root/ui/imports/api/user-settings
diff options
context:
space:
mode:
Diffstat (limited to 'ui/imports/api/user-settings')
-rw-r--r--ui/imports/api/user-settings/methods.js39
-rw-r--r--ui/imports/api/user-settings/server/publications.js21
-rw-r--r--ui/imports/api/user-settings/user-settings.js29
3 files changed, 89 insertions, 0 deletions
diff --git a/ui/imports/api/user-settings/methods.js b/ui/imports/api/user-settings/methods.js
new file mode 100644
index 0000000..e948c1e
--- /dev/null
+++ b/ui/imports/api/user-settings/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 { UserSettings } from '/imports/api/user-settings/user-settings';
+import * as R from 'ramda';
+
+export const save = new ValidatedMethod({
+ name: 'user-settings.save',
+ validate: UserSettings.simpleSchema()
+ .pick([
+ 'messages_view_backward_delta'
+ ]).validator({ clean: true, filter: false }),
+ run({
+ messages_view_backward_delta
+ }) {
+
+ let userId = this.userId;
+ let userSettings = UserSettings.findOne({ user_id: userId });
+
+ if (userSettings) {
+ UserSettings.update({ _id: userSettings._id}, { $set: {
+ messages_view_backward_delta: messages_view_backward_delta
+ }});
+ } else {
+ let item = UserSettings.schema.clean({});
+ item = R.merge(item, {
+ user_id: userId,
+ messages_view_backward_delta: messages_view_backward_delta
+ });
+ UserSettings.insert(item);
+ }
+ }
+});
diff --git a/ui/imports/api/user-settings/server/publications.js b/ui/imports/api/user-settings/server/publications.js
new file mode 100644
index 0000000..c53146c
--- /dev/null
+++ b/ui/imports/api/user-settings/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 { UserSettings } from '../user-settings.js';
+
+Meteor.publish('user_settings?user', function () {
+ console.log('server subscribtion: user_settings?user');
+
+ let userId = this.userId;
+
+ let query = { user_id: userId };
+ console.log('-query: ', query);
+ return UserSettings.find(query);
+});
diff --git a/ui/imports/api/user-settings/user-settings.js b/ui/imports/api/user-settings/user-settings.js
new file mode 100644
index 0000000..2e553aa
--- /dev/null
+++ b/ui/imports/api/user-settings/user-settings.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 UserSettings = new Mongo.Collection('user_settings', { 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', // 14 days
+ }
+};
+
+let simpleSchema = new SimpleSchema(schema);
+UserSettings.schema = simpleSchema;
+UserSettings.attachSchema(UserSettings.schema);