Moved a lot of functionality to mixins, improved parenting
This commit is contained in:
@@ -8,6 +8,7 @@ import Creatures from "/imports/api/creature/Creatures.js";
|
||||
import Attributes from "/imports/api/creature/properties/Attributes.js";
|
||||
import Skills from "/imports/api/creature/properties/Skills.js";
|
||||
import Effects from "/imports/api/creature/properties/Effects.js";
|
||||
import Proficiencies from "/imports/api/creature/properties/Proficiencies.js";
|
||||
import DamageMultipliers from "/imports/api/creature/properties/DamageMultipliers.js";
|
||||
import Classes from "/imports/api/creature/properties/Classes.js";
|
||||
import * as math from 'mathjs';
|
||||
|
||||
@@ -6,7 +6,7 @@ import {
|
||||
|
||||
function getCreature(creature, fields){
|
||||
if (typeof creature === 'string'){
|
||||
return Creatures.findOne(id, {fields});
|
||||
return Creatures.findOne(creature, {fields});
|
||||
} else {
|
||||
return creature;
|
||||
}
|
||||
@@ -20,52 +20,9 @@ export function assertOwnership(creature, userId){
|
||||
export function assertEditPermission(creature, userId) {
|
||||
creature = getCreature(creature, {owner: 1, writers: 1});
|
||||
editPermission(creature, userId);
|
||||
};
|
||||
}
|
||||
|
||||
export function assertViewPermission(creature, userId) {
|
||||
creature = getCreature(creature, {owner: 1, writers: 1, public: 1});
|
||||
viewPermission(creature, userId);
|
||||
};
|
||||
|
||||
// Checks if the method has permission to run on the document. If the document
|
||||
// has a charId, that creature is checked, otherwise if it has an _id and the
|
||||
// collection is defined in the method options, that document is fetched to
|
||||
// determine its charId, otherwise a getCharId method can be defined to perform
|
||||
// a special search for the required creature
|
||||
export function creaturePermissionMixin(methodOptions){
|
||||
let assertPermission;
|
||||
if (methodOptions.permission === 'owner'){
|
||||
assertPermission = assertOwnership;
|
||||
} else if (methodOptions.permission === 'edit'){
|
||||
assertPermission = assertEditPermission;
|
||||
} else if (methodOptions.permission === 'view'){
|
||||
assertPermission = assertViewPermission;
|
||||
} else {
|
||||
throw "`permission` missing in method options";
|
||||
}
|
||||
|
||||
let getCharId;
|
||||
if (methodOptions.getCharId){
|
||||
getCharId = methodOptions.getCharId
|
||||
} else if (methodOptions.collection) {
|
||||
getCharId = function({_id}){
|
||||
methodOptions.collection.findOne(_id, {
|
||||
fields: {charId: 1}
|
||||
}).charId;
|
||||
};
|
||||
} else {
|
||||
getCharId = function(){
|
||||
throw "`getCharId` or `collection` missing in method options," +
|
||||
" or {charId} missing in call";
|
||||
}
|
||||
}
|
||||
|
||||
let runFunc = methodOptions.run;
|
||||
methodOptions.run = function(doc, ...rest){
|
||||
// Store the charId on the doc for other mixins if it had to be fetched
|
||||
doc.charId = doc.charId || getCharId.apply(this, arguments);
|
||||
assertPermission(charId, this.userId)
|
||||
return runFunc.call(this, doc, ...rest);
|
||||
};
|
||||
return methodOptions;
|
||||
};
|
||||
}
|
||||
|
||||
@@ -7,10 +7,10 @@ import ChildSchema from '/imports/api/parenting/ChildSchema.js';
|
||||
import ColorSchema from '/imports/api/creature/subSchemas/ColorSchema.js';
|
||||
|
||||
// Mixins
|
||||
import { creaturePermissionMixin } from '/imports/api/creature/creaturePermissions.js';
|
||||
import { setDocToLastMixin } from '/imports/api/order.js';
|
||||
import creaturePermissionMixin from '/imports/api/mixins/creaturePermissionMixin.js';
|
||||
import { setDocToLastMixin } from '/imports/api/mixins/setDocToLastMixin.js';
|
||||
import { setDocAncestryMixin, ensureAncestryContainsCharIdMixin } from '/imports/api/parenting/parenting.js';
|
||||
import simpleSchemaMixin from '/imports/api/simpleSchemaMixin.js';
|
||||
import simpleSchemaMixin from '/imports/api/mixins/simpleSchemaMixin.js';
|
||||
|
||||
|
||||
let Actions = new Mongo.Collection('actions');
|
||||
@@ -88,9 +88,9 @@ const insertAction = new ValidatedMethod({
|
||||
name: 'Actions.methods.insert',
|
||||
mixins: [
|
||||
creaturePermissionMixin,
|
||||
setDocToLastMixin,
|
||||
setDocAncestryMixin,
|
||||
ensureAncestryContainsCharIdMixin,
|
||||
setDocToLastMixin,
|
||||
simpleSchemaMixin,
|
||||
],
|
||||
collection: Actions,
|
||||
|
||||
@@ -4,13 +4,19 @@ import ColorSchema from '/imports/api/creature/subSchemas/ColorSchema.js';
|
||||
import SimpleSchema from 'simpl-schema';
|
||||
import schema from '/imports/api/schema.js';
|
||||
import VARIABLE_NAME_REGEX from '/imports/constants/VARIABLE_NAME_REGEX.js';
|
||||
import getModifierFields from '/imports/api/getModifierFields.js';
|
||||
|
||||
// Mixins
|
||||
import recomputeCreatureMixin from '/imports/api/creature/recomputeCreatureMixin.js';
|
||||
import { creaturePermissionMixin } from '/imports/api/creature/creaturePermissions.js';
|
||||
import { setDocToLastMixin } from '/imports/api/order.js';
|
||||
import { setDocAncestryMixin, ensureAncestryContainsCharIdMixin } from '/imports/api/parenting/parenting.js';
|
||||
import simpleSchemaMixin from '/imports/api/simpleSchemaMixin.js';
|
||||
import recomputeCreatureMixin from '/imports/api/mixins/recomputeCreatureMixin.js';
|
||||
import creaturePermissionMixin from '/imports/api/mixins/creaturePermissionMixin.js';
|
||||
import { setDocToLastMixin } from '/imports/api/mixins/setDocToLastMixin.js';
|
||||
import {
|
||||
setDocAncestryMixin,
|
||||
ensureAncestryContainsCharIdMixin
|
||||
} from '/imports/api/parenting/parenting.js';
|
||||
import simpleSchemaMixin from '/imports/api/mixins/simpleSchemaMixin.js';
|
||||
import updateSchemaMixin from '/imports/api/mixins/updateSchemaMixin.js';
|
||||
import propagateInheritanceUpdateMixin from '/imports/api/mixins/propagateInheritanceUpdateMixin.js';
|
||||
|
||||
let Attributes = new Mongo.Collection('attributes');
|
||||
|
||||
@@ -73,6 +79,7 @@ let AttributeSchema = schema({
|
||||
});
|
||||
|
||||
AttributeSchema.extend(ColorSchema);
|
||||
AttributeSchema.extend(PropertySchema);
|
||||
|
||||
const ComputedAttributeSchema = schema({
|
||||
// The computed value of the attribute
|
||||
@@ -88,17 +95,16 @@ const ComputedAttributeSchema = schema({
|
||||
}).extend(AttributeSchema);
|
||||
|
||||
Attributes.attachSchema(ComputedAttributeSchema);
|
||||
Attributes.attachSchema(PropertySchema);
|
||||
Attributes.attachSchema(ChildSchema);
|
||||
|
||||
const insertAttribute = new ValidatedMethod({
|
||||
name: 'Attributes.methods.insert',
|
||||
mixins: [
|
||||
creaturePermissionMixin,
|
||||
setDocToLastMixin,
|
||||
setDocAncestryMixin,
|
||||
ensureAncestryContainsCharIdMixin,
|
||||
recomputeCreatureMixin,
|
||||
creaturePermissionMixin,
|
||||
setDocToLastMixin,
|
||||
simpleSchemaMixin,
|
||||
],
|
||||
collection: Attributes,
|
||||
@@ -112,31 +118,32 @@ const insertAttribute = new ValidatedMethod({
|
||||
const updateAttribute = new ValidatedMethod({
|
||||
name: 'Attributes.methods.update',
|
||||
mixins: [
|
||||
creaturePermissionMixin,
|
||||
recomputeCreatureMixin,
|
||||
simpleSchemaMixin,
|
||||
propagateInheritanceUpdateMixin,
|
||||
updateSchemaMixin,
|
||||
creaturePermissionMixin,
|
||||
],
|
||||
collection: Attributes,
|
||||
permission: 'edit',
|
||||
schema: new SimpleSchema({
|
||||
_id: SimpleSchema.RegEx.Id,
|
||||
update: AttributeSchema.omit('adjustment', 'name'),
|
||||
}),
|
||||
updateSchema: AttributeSchema,
|
||||
skipRecompute({update}){
|
||||
return !('variableName' in update) &&
|
||||
!('type' in update) &&
|
||||
!('baseValue' in update)
|
||||
let fields = getModifierFields(update);
|
||||
return !fields.hasAny([
|
||||
'variableName',
|
||||
'type',
|
||||
'baseValue',
|
||||
]);
|
||||
},
|
||||
run({_id, update}) {
|
||||
return Attributes.update(_id, {$set: update});
|
||||
return Attributes.update(_id, update);
|
||||
},
|
||||
});
|
||||
|
||||
const adjustAttribute = new ValidatedMethod({
|
||||
name: 'Attributes.methods.adjust',
|
||||
mixins: [
|
||||
creaturePermissionMixin,
|
||||
simpleSchemaMixin,
|
||||
creaturePermissionMixin,
|
||||
],
|
||||
collection: Attributes,
|
||||
permission: 'edit',
|
||||
|
||||
@@ -5,10 +5,10 @@ import ChildSchema from '/imports/api/parenting/ChildSchema.js';
|
||||
import { EffectSchema } from '/imports/api/creature/properties/Effects.js';
|
||||
|
||||
// Mixins
|
||||
import { creaturePermissionMixin } from '/imports/api/creature/creaturePermissions.js';
|
||||
import { setDocToLastMixin } from '/imports/api/order.js';
|
||||
import creaturePermissionMixin from '/imports/api/mixins/creaturePermissionMixin.js';
|
||||
import { setDocToLastMixin } from '/imports/api/mixins/setDocToLastMixin.js';
|
||||
import { setDocAncestryMixin, ensureAncestryContainsCharIdMixin } from '/imports/api/parenting/parenting.js';
|
||||
import simpleSchemaMixin from '/imports/api/simpleSchemaMixin.js';
|
||||
import simpleSchemaMixin from '/imports/api/mixins/simpleSchemaMixin.js';
|
||||
|
||||
let Buffs = new Mongo.Collection('buffs');
|
||||
|
||||
@@ -83,9 +83,9 @@ const insertBuff = new ValidatedMethod({
|
||||
name: 'Buffs.methods.insert',
|
||||
mixins: [
|
||||
creaturePermissionMixin,
|
||||
setDocToLastMixin,
|
||||
setDocAncestryMixin,
|
||||
ensureAncestryContainsCharIdMixin,
|
||||
setDocToLastMixin,
|
||||
simpleSchemaMixin,
|
||||
],
|
||||
collection: Buffs,
|
||||
|
||||
@@ -5,10 +5,10 @@ import ChildSchema from '/imports/api/parenting/ChildSchema.js';
|
||||
import VARIABLE_NAME_REGEX from '/imports/constants/VARIABLE_NAME_REGEX.js';
|
||||
|
||||
// Mixins
|
||||
import { creaturePermissionMixin } from '/imports/api/creature/creaturePermissions.js';
|
||||
import { setDocToLastMixin } from '/imports/api/order.js';
|
||||
import creaturePermissionMixin from '/imports/api/mixins/creaturePermissionMixin.js';
|
||||
import { setDocToLastMixin } from '/imports/api/mixins/setDocToLastMixin.js';
|
||||
import { setDocAncestryMixin, ensureAncestryContainsCharIdMixin } from '/imports/api/parenting/parenting.js';
|
||||
import simpleSchemaMixin from '/imports/api/simpleSchemaMixin.js';
|
||||
import simpleSchemaMixin from '/imports/api/mixins/simpleSchemaMixin.js';
|
||||
|
||||
let ClassLevels = new Mongo.Collection("classLevels");
|
||||
|
||||
@@ -50,9 +50,9 @@ const insertClassLevel = new ValidatedMethod({
|
||||
name: 'ClassLevels.methods.insert',
|
||||
mixins: [
|
||||
creaturePermissionMixin,
|
||||
setDocToLastMixin,
|
||||
setDocAncestryMixin,
|
||||
ensureAncestryContainsCharIdMixin,
|
||||
setDocToLastMixin,
|
||||
simpleSchemaMixin,
|
||||
],
|
||||
collection: ClassLevels,
|
||||
|
||||
@@ -6,10 +6,10 @@ import ColorSchema from "/imports/api/creature/subSchemas/ColorSchema.js";
|
||||
import VARIABLE_NAME_REGEX from '/imports/constants/VARIABLE_NAME_REGEX.js';
|
||||
|
||||
// Mixins
|
||||
import { creaturePermissionMixin } from '/imports/api/creature/creaturePermissions.js';
|
||||
import { setDocToLastMixin } from '/imports/api/order.js';
|
||||
import creaturePermissionMixin from '/imports/api/mixins/creaturePermissionMixin.js';
|
||||
import { setDocToLastMixin } from '/imports/api/mixins/setDocToLastMixin.js';
|
||||
import { setDocAncestryMixin, ensureAncestryContainsCharIdMixin } from '/imports/api/parenting/parenting.js';
|
||||
import simpleSchemaMixin from '/imports/api/simpleSchemaMixin.js';
|
||||
import simpleSchemaMixin from '/imports/api/mixins/simpleSchemaMixin.js';
|
||||
|
||||
let Classes = new Mongo.Collection("classes");
|
||||
|
||||
@@ -35,9 +35,9 @@ const insertClass = new ValidatedMethod({
|
||||
name: 'Classes.methods.insert',
|
||||
mixins: [
|
||||
creaturePermissionMixin,
|
||||
setDocToLastMixin,
|
||||
setDocAncestryMixin,
|
||||
ensureAncestryContainsCharIdMixin,
|
||||
setDocToLastMixin,
|
||||
simpleSchemaMixin,
|
||||
],
|
||||
collection: Classes,
|
||||
|
||||
@@ -5,11 +5,11 @@ import ChildSchema from '/imports/api/parenting/ChildSchema.js';
|
||||
import DAMAGE_TYPES from '/imports/constants/DAMAGE_TYPES.js';
|
||||
|
||||
// Mixins
|
||||
import recomputeCreatureMixin from '/imports/api/creature/recomputeCreatureMixin.js';
|
||||
import { creaturePermissionMixin } from '/imports/api/creature/creaturePermissions.js';
|
||||
import { setDocToLastMixin } from '/imports/api/order.js';
|
||||
import recomputeCreatureMixin from '/imports/api/mixins/recomputeCreatureMixin.js';
|
||||
import creaturePermissionMixin from '/imports/api/mixins/creaturePermissionMixin.js';
|
||||
import { setDocToLastMixin } from '/imports/api/mixins/setDocToLastMixin.js';
|
||||
import { setDocAncestryMixin, ensureAncestryContainsCharIdMixin } from '/imports/api/parenting/parenting.js';
|
||||
import simpleSchemaMixin from '/imports/api/simpleSchemaMixin.js';
|
||||
import simpleSchemaMixin from '/imports/api/mixins/simpleSchemaMixin.js';
|
||||
|
||||
let DamageMultipliers = new Mongo.Collection("damageMultipliers");
|
||||
|
||||
@@ -43,10 +43,10 @@ const insertDamageMultiplier = new ValidatedMethod({
|
||||
name: 'DamageMultipliers.methods.insert',
|
||||
mixins: [
|
||||
creaturePermissionMixin,
|
||||
setDocToLastMixin,
|
||||
setDocAncestryMixin,
|
||||
ensureAncestryContainsCharIdMixin,
|
||||
recomputeCreatureMixin,
|
||||
setDocToLastMixin,
|
||||
simpleSchemaMixin,
|
||||
],
|
||||
collection: DamageMultipliers,
|
||||
|
||||
@@ -4,11 +4,11 @@ import PropertySchema from '/imports/api/creature/subSchemas/PropertySchema.js';
|
||||
import ChildSchema from '/imports/api/parenting/ChildSchema.js';
|
||||
|
||||
// Mixins
|
||||
import recomputeCreatureMixin from '/imports/api/creature/recomputeCreatureMixin.js';
|
||||
import { creaturePermissionMixin } from '/imports/api/creature/creaturePermissions.js';
|
||||
import { setDocToLastMixin } from '/imports/api/order.js';
|
||||
import recomputeCreatureMixin from '/imports/api/mixins/recomputeCreatureMixin.js';
|
||||
import creaturePermissionMixin from '/imports/api/mixins/creaturePermissionMixin.js';
|
||||
import { setDocToLastMixin } from '/imports/api/mixins/setDocToLastMixin.js';
|
||||
import { setDocAncestryMixin, ensureAncestryContainsCharIdMixin } from '/imports/api/parenting/parenting.js';
|
||||
import simpleSchemaMixin from '/imports/api/simpleSchemaMixin.js';
|
||||
import simpleSchemaMixin from '/imports/api/mixins/simpleSchemaMixin.js';
|
||||
|
||||
let Effects = new Mongo.Collection('effects');
|
||||
|
||||
@@ -64,10 +64,10 @@ const insertEffect = new ValidatedMethod({
|
||||
name: 'Effects.methods.insert',
|
||||
mixins: [
|
||||
creaturePermissionMixin,
|
||||
setDocToLastMixin,
|
||||
setDocAncestryMixin,
|
||||
ensureAncestryContainsCharIdMixin,
|
||||
recomputeCreatureMixin,
|
||||
setDocToLastMixin,
|
||||
simpleSchemaMixin,
|
||||
],
|
||||
collection: Effects,
|
||||
|
||||
@@ -4,11 +4,11 @@ import PropertySchema from '/imports/api/creature/subSchemas/PropertySchema.js';
|
||||
import recomputeCreatureXP from '/imports/api/creature/creatureComputation.js';
|
||||
|
||||
// Mixins
|
||||
import recomputeCreatureMixin from '/imports/api/creature/recomputeCreatureMixin.js';
|
||||
import { creaturePermissionMixin } from '/imports/api/creature/creaturePermissions.js';
|
||||
import { setDocToLastMixin } from '/imports/api/order.js';
|
||||
import recomputeCreatureMixin from '/imports/api/mixins/recomputeCreatureMixin.js';
|
||||
import creaturePermissionMixin from '/imports/api/mixins/creaturePermissionMixin.js';
|
||||
import { setDocToLastMixin } from '/imports/api/mixins/setDocToLastMixin.js';
|
||||
import { setDocAncestryMixin, ensureAncestryContainsCharIdMixin } from '/imports/api/parenting/parenting.js';
|
||||
import simpleSchemaMixin from '/imports/api/simpleSchemaMixin.js';
|
||||
import simpleSchemaMixin from '/imports/api/mixins/simpleSchemaMixin.js';
|
||||
|
||||
let Experiences = new Mongo.Collection("experience");
|
||||
|
||||
@@ -53,10 +53,10 @@ const insertExperience = new ValidatedMethod({
|
||||
name: 'Experiences.methods.insert',
|
||||
mixins: [
|
||||
creaturePermissionMixin,
|
||||
setDocToLastMixin,
|
||||
setDocAncestryMixin,
|
||||
ensureAncestryContainsCharIdMixin,
|
||||
recomputeCreatureMixin,
|
||||
setDocToLastMixin,
|
||||
simpleSchemaMixin,
|
||||
],
|
||||
collection: Experiences,
|
||||
|
||||
@@ -2,17 +2,17 @@ import SimpleSchema from 'simpl-schema';
|
||||
import schema from '/imports/api/schema.js';
|
||||
import { assertEditPermission } from '/imports/api/creature/creaturePermissions.js';
|
||||
import { recomputeCreatureById } from '/imports/api/creature/creatureComputation.js'
|
||||
import { getHighestOrder } from '/imports/api/order.js';
|
||||
import { getHighestOrder } from '/imports/api/order/order.js';
|
||||
import PropertySchema from '/imports/api/creature/subSchemas/PropertySchema.js';
|
||||
import ChildSchema from '/imports/api/parenting/ChildSchema.js';
|
||||
import ColorSchema from '/imports/api/creature/subSchemas/ColorSchema.js';
|
||||
|
||||
// Mixins
|
||||
import recomputeCreatureMixin from '/imports/api/creature/recomputeCreatureMixin.js';
|
||||
import { creaturePermissionMixin } from '/imports/api/creature/creaturePermissions.js';
|
||||
import { setDocToLastMixin } from '/imports/api/order.js';
|
||||
import recomputeCreatureMixin from '/imports/api/mixins/recomputeCreatureMixin.js';
|
||||
import creaturePermissionMixin from '/imports/api/mixins/creaturePermissionMixin.js';
|
||||
import { setDocToLastMixin } from '/imports/api/mixins/setDocToLastMixin.js';
|
||||
import { setDocAncestryMixin, ensureAncestryContainsCharIdMixin } from '/imports/api/parenting/parenting.js';
|
||||
import simpleSchemaMixin from '/imports/api/simpleSchemaMixin.js';
|
||||
import simpleSchemaMixin from '/imports/api/mixins/simpleSchemaMixin.js';
|
||||
|
||||
let Features = new Mongo.Collection('features');
|
||||
|
||||
@@ -41,9 +41,9 @@ const insertFeature = new ValidatedMethod({
|
||||
name: 'Features.methods.insert',
|
||||
mixins: [
|
||||
creaturePermissionMixin,
|
||||
setDocToLastMixin,
|
||||
setDocAncestryMixin,
|
||||
ensureAncestryContainsCharIdMixin,
|
||||
setDocToLastMixin,
|
||||
simpleSchemaMixin,
|
||||
],
|
||||
collection: Features,
|
||||
|
||||
@@ -4,10 +4,10 @@ import PropertySchema from '/imports/api/creature/subSchemas/PropertySchema.js';
|
||||
import ChildSchema from '/imports/api/parenting/ChildSchema.js';
|
||||
|
||||
// Mixins
|
||||
import { creaturePermissionMixin } from '/imports/api/creature/creaturePermissions.js';
|
||||
import { setDocToLastMixin } from '/imports/api/order.js';
|
||||
import creaturePermissionMixin from '/imports/api/mixins/creaturePermissionMixin.js';
|
||||
import { setDocToLastMixin } from '/imports/api/mixins/setDocToLastMixin.js';
|
||||
import { setDocAncestryMixin, ensureAncestryContainsCharIdMixin } from '/imports/api/parenting/parenting.js';
|
||||
import simpleSchemaMixin from '/imports/api/simpleSchemaMixin.js';
|
||||
import simpleSchemaMixin from '/imports/api/mixins/simpleSchemaMixin.js';
|
||||
|
||||
let Folders = new Mongo.Collection('folders');
|
||||
|
||||
@@ -26,9 +26,9 @@ const insertFolder = new ValidatedMethod({
|
||||
name: 'Folders.methods.insert',
|
||||
mixins: [
|
||||
creaturePermissionMixin,
|
||||
setDocToLastMixin,
|
||||
setDocAncestryMixin,
|
||||
ensureAncestryContainsCharIdMixin,
|
||||
setDocToLastMixin,
|
||||
simpleSchemaMixin,
|
||||
],
|
||||
collection: Folders,
|
||||
|
||||
@@ -4,10 +4,10 @@ import ColorSchema from "/imports/api/creature/subSchemas/ColorSchema.js";
|
||||
import PropertySchema from '/imports/api/creature/subSchemas/PropertySchema.js';
|
||||
|
||||
// Mixins
|
||||
import { creaturePermissionMixin } from '/imports/api/creature/creaturePermissions.js';
|
||||
import { setDocToLastMixin } from '/imports/api/order.js';
|
||||
import creaturePermissionMixin from '/imports/api/mixins/creaturePermissionMixin.js';
|
||||
import { setDocToLastMixin } from '/imports/api/mixins/setDocToLastMixin.js';
|
||||
import { setDocAncestryMixin, ensureAncestryContainsCharIdMixin } from '/imports/api/parenting/parenting.js';
|
||||
import simpleSchemaMixin from '/imports/api/simpleSchemaMixin.js';
|
||||
import simpleSchemaMixin from '/imports/api/mixins/simpleSchemaMixin.js';
|
||||
|
||||
let Notes = new Mongo.Collection("notes");
|
||||
|
||||
@@ -31,9 +31,9 @@ const insertNote = new ValidatedMethod({
|
||||
name: 'Notes.methods.insert',
|
||||
mixins: [
|
||||
creaturePermissionMixin,
|
||||
setDocToLastMixin,
|
||||
setDocAncestryMixin,
|
||||
ensureAncestryContainsCharIdMixin,
|
||||
setDocToLastMixin,
|
||||
simpleSchemaMixin,
|
||||
],
|
||||
collection: Notes,
|
||||
|
||||
@@ -4,11 +4,11 @@ import PropertySchema from '/imports/api/creature/subSchemas/PropertySchema.js';
|
||||
import ChildSchema from '/imports/api/parenting/ChildSchema.js';
|
||||
|
||||
// Mixins
|
||||
import recomputeCreatureMixin from '/imports/api/creature/recomputeCreatureMixin.js';
|
||||
import { creaturePermissionMixin } from '/imports/api/creature/creaturePermissions.js';
|
||||
import { setDocToLastMixin } from '/imports/api/order.js';
|
||||
import recomputeCreatureMixin from '/imports/api/mixins/recomputeCreatureMixin.js';
|
||||
import creaturePermissionMixin from '/imports/api/mixins/creaturePermissionMixin.js';
|
||||
import { setDocToLastMixin } from '/imports/api/mixins/setDocToLastMixin.js';
|
||||
import { setDocAncestryMixin, ensureAncestryContainsCharIdMixin } from '/imports/api/parenting/parenting.js';
|
||||
import simpleSchemaMixin from '/imports/api/simpleSchemaMixin.js';
|
||||
import simpleSchemaMixin from '/imports/api/mixins/simpleSchemaMixin.js';
|
||||
|
||||
let Proficiencies = new Mongo.Collection("proficiencies");
|
||||
|
||||
|
||||
@@ -5,10 +5,10 @@ import AdjustmentSchema from '/imports/api/creature/subSchemas/AdjustmentSchema.
|
||||
import StoredBuffSchema from '/imports/api/creature/properties/Buffs.js';
|
||||
|
||||
// Mixins
|
||||
import { creaturePermissionMixin } from '/imports/api/creature/creaturePermissions.js';
|
||||
import { setDocToLastMixin } from '/imports/api/order.js';
|
||||
import creaturePermissionMixin from '/imports/api/mixins/creaturePermissionMixin.js';
|
||||
import { setDocToLastMixin } from '/imports/api/mixins/setDocToLastMixin.js';
|
||||
import { setDocAncestryMixin, ensureAncestryContainsCharIdMixin } from '/imports/api/parenting/parenting.js';
|
||||
import simpleSchemaMixin from '/imports/api/simpleSchemaMixin.js';
|
||||
import simpleSchemaMixin from '/imports/api/mixins/simpleSchemaMixin.js';
|
||||
|
||||
let Rolls = new Mongo.Collection('rolls');
|
||||
|
||||
|
||||
@@ -5,11 +5,11 @@ import ChildSchema from '/imports/api/parenting/ChildSchema.js';
|
||||
import ColorSchema from '/imports/api/creature/subSchemas/ColorSchema.js';
|
||||
|
||||
// Mixins
|
||||
import recomputeCreatureMixin from '/imports/api/creature/recomputeCreatureMixin.js';
|
||||
import { creaturePermissionMixin } from '/imports/api/creature/creaturePermissions.js';
|
||||
import { setDocToLastMixin } from '/imports/api/order.js';
|
||||
import recomputeCreatureMixin from '/imports/api/mixins/recomputeCreatureMixin.js';
|
||||
import creaturePermissionMixin from '/imports/api/mixins/creaturePermissionMixin.js';
|
||||
import { setDocToLastMixin } from '/imports/api/mixins/setDocToLastMixin.js';
|
||||
import { setDocAncestryMixin, ensureAncestryContainsCharIdMixin } from '/imports/api/parenting/parenting.js';
|
||||
import simpleSchemaMixin from '/imports/api/simpleSchemaMixin.js';
|
||||
import simpleSchemaMixin from '/imports/api/mixins/simpleSchemaMixin.js';
|
||||
|
||||
let Skills = new Mongo.Collection("skills");
|
||||
|
||||
|
||||
@@ -5,10 +5,10 @@ import PropertySchema from '/imports/api/creature/subSchemas/PropertySchema.js';
|
||||
import ChildSchema from '/imports/api/parenting/ChildSchema.js';
|
||||
|
||||
// Mixins
|
||||
import { creaturePermissionMixin } from '/imports/api/creature/creaturePermissions.js';
|
||||
import { setDocToLastMixin } from '/imports/api/order.js';
|
||||
import creaturePermissionMixin from '/imports/api/mixins/creaturePermissionMixin.js';
|
||||
import { setDocToLastMixin } from '/imports/api/mixins/setDocToLastMixin.js';
|
||||
import { setDocAncestryMixin, ensureAncestryContainsCharIdMixin } from '/imports/api/parenting/parenting.js';
|
||||
import simpleSchemaMixin from '/imports/api/simpleSchemaMixin.js';
|
||||
import simpleSchemaMixin from '/imports/api/mixins/simpleSchemaMixin.js';
|
||||
|
||||
let SpellLists = new Mongo.Collection("spellLists");
|
||||
|
||||
|
||||
@@ -5,10 +5,10 @@ import PropertySchema from '/imports/api/creature/subSchemas/PropertySchema.js';
|
||||
import ChildSchema from '/imports/api/parenting/ChildSchema.js';
|
||||
|
||||
// Mixins
|
||||
import { creaturePermissionMixin } from '/imports/api/creature/creaturePermissions.js';
|
||||
import { setDocToLastMixin } from '/imports/api/order.js';
|
||||
import creaturePermissionMixin from '/imports/api/mixins/creaturePermissionMixin.js';
|
||||
import { setDocToLastMixin } from '/imports/api/mixins/setDocToLastMixin.js';
|
||||
import { setDocAncestryMixin, ensureAncestryContainsCharIdMixin } from '/imports/api/parenting/parenting.js';
|
||||
import simpleSchemaMixin from '/imports/api/simpleSchemaMixin.js';
|
||||
import simpleSchemaMixin from '/imports/api/mixins/simpleSchemaMixin.js';
|
||||
|
||||
const magicSchools = [
|
||||
'Abjuration',
|
||||
|
||||
@@ -1,13 +0,0 @@
|
||||
export default function recomputeCreatureMixin(methodOptions){
|
||||
let runFunc = methodOptions.run;
|
||||
methodOptions.run = function({charId}){
|
||||
const result = runFunc.apply(this, arguments);
|
||||
if (
|
||||
methodOptions.skipRecompute &&
|
||||
methodOptions.skipRecompute.apply(this, arguments)
|
||||
) return result;
|
||||
recomputeCreatureById(charId);
|
||||
return result;
|
||||
};
|
||||
return methodOptions;
|
||||
};
|
||||
Reference in New Issue
Block a user