endpoints/endpoints

View on GitHub
es5/store-bookshelf/lib/destroy_relation.js

Summary

Maintainability
A
0 mins
Test Coverage
'use strict';

exports.__esModule = true;
exports['default'] = destroyRelation;

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }

var _destructure = require('./destructure');

var _destructure2 = _interopRequireDefault(_destructure);

var _transact = require('./_transact');

var _transact2 = _interopRequireDefault(_transact);

var _relate = require('./relate');

var _relate2 = _interopRequireDefault(_relate);

/**
 * Destroys relations on a model.
 *
 * @param {Bookshelf.Model} model - A bookshelf model instance
 * @param {Object} relations - An object containing the relations.
 * @return {Promise.Bookshelf.Model} The updated model.
 */

function destroyRelation(model, relations) {
  if (!model) {
    throw new Error('No model provided.');
  }
  return _destructure2['default'](model, relations).then(function (destructured) {
    var relations = destructured.relations;
    return _transact2['default'](model, function (transaction) {
      return _relate2['default'](model, relations, 'delete', transaction);
    });
  });
}

module.exports = exports['default'];