import Users from 'meteor/nova:users';

Telescope.settings.collection.smartMethods({
  editName: "settings.edit"
});

Meteor.methods({
  "settings.getJSON": function () {
    if (Users.isAdminById(this.userId)) {
      return Meteor.settings;
    } else {
      return {};
    }
  },
  "settings.exportToJSON": function () {
    if (Users.isAdminById(this.userId)) {
      let settings = Telescope.settings.collection.findOne();
      const schema = Telescope.settings.collection.simpleSchema()._schema;
      const publicFields = Telescope.settings.collection.getPublicFields();
      delete settings._id;
      settings.public = {};
      _.forEach(settings, (field, key) => {
        if (_.contains(publicFields, key)) {
          settings.public[key] = field;
          delete settings[key];
        }
      });
      console.log(JSON.stringify(settings, null, 2));
      return settings;
    }
  },
  "settings.clear": function () {
    if (Users.isAdminById(this.userId)) {
      const settings = Telescope.settings.collection.findOne();
      Telescope.settings.collection.update(settings._id, {}, {validate: false});
    }
  }
})