Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
@doodle/billing-client / dist / index.cjs.js / cancelAllSubscriptionsForUser.js
Size: Mime:
'use strict';

var getAllSubscriptionsForUser = require('./getAllSubscriptionsForUser.js');
var cancelSubscriptionForUser = require('./cancelSubscriptionForUser.js');

/**
 * Cancel all subscriptions for a user.
 *
 * @param {string} accessToken - The user's access-token
 * @returns {Promise<object>}
 */

async function cancelAllSubscriptionsForUser(accessToken) {
  if (typeof accessToken !== 'string') {
    throw new TypeError(`accessToken param must be a string, got ${typeof accessToken}`);
  }

  const userSubscriptions = await getAllSubscriptionsForUser(accessToken);
  const subscriptionIds = userSubscriptions && userSubscriptions.document && userSubscriptions.document.filter(d => d && typeof d.subscriptionId !== 'undefined').map(d => d.subscriptionId);

  if (!subscriptionIds || subscriptionIds.length === 0) {
    return Promise.resolve({
      message: 'No subscriptions found'
    });
  }

  return Promise.all(subscriptionIds.map(subscriptionId => cancelSubscriptionForUser(accessToken, subscriptionId)));
}

module.exports = cancelAllSubscriptionsForUser;
//# sourceMappingURL=cancelAllSubscriptionsForUser.js.map