55 lines
1.5 KiB
JavaScript
55 lines
1.5 KiB
JavaScript
import { OHIF } from 'meteor/ohif:core';
|
|
import { Meteor } from 'meteor/meteor';
|
|
|
|
// Manipulate user's persistent data
|
|
class UserData {
|
|
|
|
// Get the persistent data by key
|
|
static get(key) {
|
|
// Check if there is an user logged in
|
|
OHIF.MongoUtils.validateUser();
|
|
|
|
// Get the user's profile data
|
|
const profileData = Meteor.user().profile;
|
|
|
|
// Return the data if it is set
|
|
if (profileData.persistent) {
|
|
return profileData.persistent[key];
|
|
}
|
|
}
|
|
|
|
// Store the persistent data by giving a key and a value to store
|
|
static set(key, value) {
|
|
// Check if there is an user logged in
|
|
OHIF.MongoUtils.validateUser();
|
|
|
|
// Build the query to update only the current user's data
|
|
var query = {
|
|
_id: Meteor.userId()
|
|
};
|
|
|
|
// Build the path to the persistent data with the given key
|
|
const persistentPath = `profile.persistent.${key}`;
|
|
|
|
// Build the data to be updated
|
|
var data = {
|
|
$set: {
|
|
[persistentPath]: value
|
|
}
|
|
};
|
|
|
|
// Update the user's profile data with the persistent information
|
|
Accounts.users.update(query, data, OHIF.MongoUtils.writeCallback);
|
|
}
|
|
|
|
}
|
|
|
|
// Register the methods
|
|
Meteor.methods({
|
|
userDataGet: key => UserData.get(key),
|
|
userDataSet: (key, value) => UserData.set(key, value)
|
|
});
|
|
|
|
// Expose the class in the OHIF object
|
|
OHIF.UserData = UserData;
|