all files / documents/database/ operations.js

100% Statements 6/6
100% Branches 0/0
100% Functions 2/2
100% Lines 5/5
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27            10× 10×             10× 10×                    
import Ember from 'ember';
import InternalDocumentSaveOperation from './operations/internal/save';
import InternalDocumentLoadOperation from './operations/internal/load';
import InternalDocumentReloadOperation from './operations/internal/reload';
import InternalDocumentDeleteOperation from './operations/internal/delete';
 
const internalOperation = (Class) => function() {
  let op = new Class(...arguments);
  return this._enqueueInternalOperation(op);
};
 
export default Ember.Mixin.create({
 
  _enqueueInternalOperation(op) {
    // internal.addOperation(op);
    op.invoke();
    return op.promise;
  },
 
  _enqueueInternalSave:   internalOperation(InternalDocumentSaveOperation),
  _enqueueInternalLoad:   internalOperation(InternalDocumentLoadOperation),
  _enqueueInternalReload: internalOperation(InternalDocumentReloadOperation),
  _enqueueInternalDelete: internalOperation(InternalDocumentDeleteOperation)
 
});