From 7edd2a53f2db8aec03304318e3249218d2e546f0 Mon Sep 17 00:00:00 2001 From: "Kevin M. Jablonka" Date: Tue, 9 Mar 2021 11:33:05 +0100 Subject: [PATCH 1/2] feat: adding user preferences class --- rest-on-couch/UserPrefs.js | 40 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 rest-on-couch/UserPrefs.js diff --git a/rest-on-couch/UserPrefs.js b/rest-on-couch/UserPrefs.js new file mode 100644 index 00000000..de8388e8 --- /dev/null +++ b/rest-on-couch/UserPrefs.js @@ -0,0 +1,40 @@ +class UserPrefs { + constructor(roc) { + this.roc = roc; + } + /** + * Retrieves user preferences related to the current view + * @return {object} preferences + */ + async get() { + let record = await this.getRecord(); + if (record && record.$content) return record.$content; + return undefined; + } + + async getRecord() { + var user = await this.roc.getUser(); + if (!user || !user.username) return undefined; + var firstEntry = ( + await this.roc.view('entryByOwnerAndId', { + key: [user.username, 'userPrefs'], + }) + )[0]; + return firstEntry; + } + + async set(value) { + let record = await this.getRecord(); + if (record) { + record.$content = value; + return this.roc.update(record); + } else { + return this.roc.create({ + $id: ['userPrefs'], + $content: value, + $kind: 'userPrefs', + }); + } + } +} +return UserPrefs; From 653d624a4c6c183fd1771e787642c47ec7e3c178 Mon Sep 17 00:00:00 2001 From: "Kevin M. Jablonka" Date: Tue, 9 Mar 2021 11:45:00 +0100 Subject: [PATCH 2/2] feat: adding UserPrefs --- rest-on-couch/Roc.js | 3 ++ rest-on-couch/UserPrefs.js | 74 +++++++++++++++++++------------------- 2 files changed, 41 insertions(+), 36 deletions(-) diff --git a/rest-on-couch/Roc.js b/rest-on-couch/Roc.js index b3928df5..c35ed7a9 100644 --- a/rest-on-couch/Roc.js +++ b/rest-on-couch/Roc.js @@ -12,6 +12,7 @@ define([ 'src/util/IDBKeyValue', 'eventEmitter', './UserViewPrefs', + './UserPrefs', './UserAnalysisResults' ], function ( Datas, @@ -27,6 +28,7 @@ define([ IDB, EventEmitter, UserViewPrefs, + UserViewPrefs, UserAnalysisResults ) { const DataObject = Datas.DataObject; @@ -198,6 +200,7 @@ define([ this.__ready = Promise.resolve(); this.UserViewPrefs = new UserViewPrefs(this); + this.UserPrefs = new UserPrefs(this); this.UserAnalysisResults = new UserAnalysisResults(this); } diff --git a/rest-on-couch/UserPrefs.js b/rest-on-couch/UserPrefs.js index de8388e8..92ac8425 100644 --- a/rest-on-couch/UserPrefs.js +++ b/rest-on-couch/UserPrefs.js @@ -1,40 +1,42 @@ -class UserPrefs { - constructor(roc) { - this.roc = roc; - } - /** - * Retrieves user preferences related to the current view - * @return {object} preferences - */ - async get() { - let record = await this.getRecord(); - if (record && record.$content) return record.$content; - return undefined; - } +define(function () { + class UserPrefs { + constructor(roc) { + this.roc = roc; + } + /** + * Retrieves user preferences related to the current view + * @return {object} preferences + */ + async get() { + let record = await this.getRecord(); + if (record && record.$content) return record.$content; + return undefined; + } - async getRecord() { - var user = await this.roc.getUser(); - if (!user || !user.username) return undefined; - var firstEntry = ( - await this.roc.view('entryByOwnerAndId', { - key: [user.username, 'userPrefs'], - }) - )[0]; - return firstEntry; - } + async getRecord() { + var user = await this.roc.getUser(); + if (!user || !user.username) return undefined; + var firstEntry = ( + await this.roc.view('entryByOwnerAndId', { + key: [user.username, 'userPrefs'], + }) + )[0]; + return firstEntry; + } - async set(value) { - let record = await this.getRecord(); - if (record) { - record.$content = value; - return this.roc.update(record); - } else { - return this.roc.create({ - $id: ['userPrefs'], - $content: value, - $kind: 'userPrefs', - }); + async set(value) { + let record = await this.getRecord(); + if (record) { + record.$content = value; + return this.roc.update(record); + } else { + return this.roc.create({ + $id: ['userPrefs'], + $content: value, + $kind: 'userPrefs', + }); + } } } -} -return UserPrefs; + return UserPrefs; +});