ohif-viewer/Packages/lesiontracker/server/servers.js
2016-08-10 15:39:31 +02:00

72 lines
1.8 KiB
JavaScript

import { Meteor } from 'meteor/meteor';
import { Accounts } from 'meteor/accounts-base';
Meteor.startup(function() {
_.each(Meteor.settings.servers, function(endpoints, serverType) {
_.each(endpoints, function(endpoint) {
var server = _.clone(endpoint);
server.origin = 'json';
server.type = serverType;
Servers.insert(server);
});
});
});
class ServersControl {
static validateUser() {
if (!Meteor.userId()) {
throw new Meteor.Error('not-authorized');
}
}
static writeCallback(error, affected) {
if (error) {
throw new Meteor.Error('data-write', error);
}
}
static save(serverSettings) {
this.validateUser();
var query = {
_id: serverSettings._id
};
var options = {
upsert: true
};
if (!serverSettings._id) {
delete serverSettings._id;
}
return Servers.update(query, serverSettings, options, this.writeCallback);
}
static setActive(serverId) {
this.validateUser();
var query = {
_id: Meteor.userId()
};
var data = {
$set: {
'profile.activeServer': serverId
}
};
Accounts.users.update(query, data, this.writeCallback);
}
static remove(serverId) {
this.validateUser();
var query = {
_id: serverId
};
return Servers.remove(query, this.writeCallback);
}
}
Meteor.methods({
serverSave: serverSettings => ServersControl.save(serverSettings),
serverSetActive: serverId => ServersControl.setActive(serverId),
serverRemove: serverId => ServersControl.remove(serverId)
});