From d0adff06bed72f9a0edd7adccfa6a1111784bc8b Mon Sep 17 00:00:00 2001 From: Koren Lev Date: Fri, 29 Sep 2017 01:38:18 +0300 Subject: release 1.0 calipso for opnfv apex Change-Id: I3e63cd27c5f4d3756e67a07c749863a68e84dde2 Signed-off-by: Koren Lev (cherry picked from commit d32f75145676bacefde0d08a14680a5984623451) --- ui/imports/api/user-settings/methods.js | 39 ++++++++++++++++++++++ .../api/user-settings/server/publications.js | 21 ++++++++++++ ui/imports/api/user-settings/user-settings.js | 29 ++++++++++++++++ 3 files changed, 89 insertions(+) create mode 100644 ui/imports/api/user-settings/methods.js create mode 100644 ui/imports/api/user-settings/server/publications.js create mode 100644 ui/imports/api/user-settings/user-settings.js (limited to 'ui/imports/api/user-settings') 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); -- cgit 1.2.3-korg