28 lines
960 B
JavaScript
28 lines
960 B
JavaScript
import SimpleSchema from 'simpl-schema';
|
|
import { setDocToLastOrder } from '/imports/api/parenting/order.js';
|
|
|
|
export function setDocToLastMixin(methodOptions){
|
|
// Make sure the doc has a charId
|
|
// This mixin should come before simpleSchemaMixin so that it can extend the
|
|
// schema before it is turned into a validate function
|
|
if (methodOptions.validate){
|
|
throw new Meteor.Error(`setDocToLastMixin should come before simpleSchemaMixin`);
|
|
}
|
|
methodOptions.schema = new SimpleSchema({
|
|
charId: {
|
|
type: String,
|
|
regEx: SimpleSchema.RegEx.Id,
|
|
},
|
|
}).extend(methodOptions.schema);
|
|
let collection = methodOptions.collection;
|
|
if (!collection){
|
|
throw new Meteor.Error("`collection` required in method options for setDocToLastMixin");
|
|
}
|
|
let runFunc = methodOptions.run;
|
|
methodOptions.run = function(doc){
|
|
setDocToLastOrder({collection, doc});
|
|
return runFunc.apply(this, arguments);
|
|
};
|
|
return methodOptions;
|
|
}
|