28 lines
964 B
JavaScript
28 lines
964 B
JavaScript
import SimpleSchema from 'simpl-schema';
|
|
import { setDocToLastOrder } from '/imports/api/parenting/order';
|
|
|
|
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;
|
|
}
|