Files
DiceCloud/app/imports/api/creature/log/CreatureLogs.js
2020-09-29 22:34:30 +02:00

55 lines
1.2 KiB
JavaScript

import SimpleSchema from 'simpl-schema';
if (Meteor.isServer){
var sendWebhookAsCreature = require('/imports/server/discord/sendWebhook.js').sendWebhookAsCreature;
}
let CreatureLogs = new Mongo.Collection('creatureLogs');
let CreatureLogSchema = new SimpleSchema({
text: {
type: String,
},
type: {
type: String,
allowedValues: ['roll', 'change', 'damage', 'info'],
defaultValue: 'info',
},
// The real-world date that it occured, usually sorted by date
date: {
type: Date,
autoValue: function() {
// If the date isn't set, set it to now
if (!this.isSet) {
return new Date();
}
},
index: 1,
},
creatureId: {
type: String,
regEx: SimpleSchema.RegEx.Id,
index: 1,
},
});
CreatureLogs.attachSchema(CreatureLogSchema);
// This function should only be called by trusted code. No permission checks
const insertCreatureLog = function({log, creature}){
if (typeof log === 'string'){
log = {text: log};
}
log.creatureId = creature._id;
let id = CreatureLogs.insert(log);
if (Meteor.isServer){
sendWebhookAsCreature({
creature,
content: log.text,
});
}
return id;
};
export default CreatureLogs;
export { CreatureLogSchema, insertCreatureLog};