todos-contra-el-fuego-web/imports/api/SiteSettings/SiteSettings.js

49 lines
1.2 KiB
JavaScript

/* eslint-disable consistent-return */
/* eslint-disable import/no-absolute-path */
import { Mongo } from 'meteor/mongo';
import SimpleSchema from 'simpl-schema';
import { defaultCreatedAt, defaultUpdateAt } from '/imports/api/Utility/Utils.js';
import SiteSettingsTypes from './SiteSettingsTypes';
const SiteSettings = new Mongo.Collection('siteSettings', { idGeneration: 'MONGO' });
SiteSettings.allow({
insert: () => false,
update: () => false,
remove: () => false
});
SiteSettings.deny({
insert: () => true,
update: () => true,
remove: () => true
});
SiteSettings.get = (name) => {
const setting = SiteSettings.findOne({
name
});
return typeof setting === 'object' ? setting.value : undefined;
};
SiteSettings.observe = (name, callback) => {
SiteSettings.find({ name }).observe({
added: (document) => {
callback(document.value);
}
});
};
SiteSettings.getSchema = type => new SimpleSchema({
name: String,
type: String,
description: String,
value: SiteSettingsTypes[type].value,
createdAt: defaultCreatedAt,
updatedAt: defaultUpdateAt
});
// SiteSettings.attachSchema(SiteSettings.schema);
export default SiteSettings;