HasManyUnrelateOperation.js 807 B

12345678910111213141516171819202122232425
  1. const UnrelateOperation = require('../../queryBuilder/operations/UnrelateOperation');
  2. class HasManyUnrelateOperation extends UnrelateOperation {
  3. queryExecutor(builder) {
  4. const patch = {};
  5. const ownerProp = this.relation.ownerProp;
  6. const relatedProp = this.relation.relatedProp;
  7. const ownerValues = ownerProp.getProps(this.owner);
  8. const relatedRefs = relatedProp.refs(builder);
  9. for (let i = 0, l = relatedProp.size; i < l; ++i) {
  10. relatedProp.patch(patch, i, null);
  11. }
  12. return this.relation.relatedModelClass
  13. .query()
  14. .childQueryOf(builder)
  15. .patch(patch)
  16. .copyFrom(builder, builder.constructor.WhereSelector)
  17. .whereComposite(relatedRefs, ownerValues)
  18. .modify(this.relation.modify);
  19. }
  20. }
  21. module.exports = HasManyUnrelateOperation;