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    
Size: Mime:
"use strict";

var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.unarchiveActivity = exports.duplicateCalendar = exports.createCalendar = void 0;

var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));

var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));

var _paywall = require("../constants/paywall");

var _requests = require("./requests");

var _common = require("../constants/common");

function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }

function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }

var createCalendar = function createCalendar(_ref) {
  var token = _ref.token,
      apiHost = _ref.apiHost,
      _ref$slots = _ref.slots,
      slots = _ref$slots === void 0 ? [] : _ref$slots,
      _ref$calendarDetails = _ref.calendarDetails,
      calendarDetails = _ref$calendarDetails === void 0 ? {} : _ref$calendarDetails,
      resolve = _ref.resolve,
      captchaToken = _ref.captchaToken,
      primaryCalendarAccountId = _ref.primaryCalendarAccountId;
  return (0, _requests.createCalendarRequest)({
    token: token,
    captchaToken: captchaToken,
    apiHost: apiHost,
    slots: slots,
    calendarDetails: calendarDetails,
    primaryCalendarAccountId: primaryCalendarAccountId
  }).then(function _callee(res) {
    var calendarResponse, parsedCalendarResponse;
    return _regenerator["default"].async(function _callee$(_context) {
      while (1) {
        switch (_context.prev = _context.next) {
          case 0:
            _context.next = 2;
            return _regenerator["default"].awrap(res.text());

          case 2:
            calendarResponse = _context.sent;
            parsedCalendarResponse = JSON.parse(calendarResponse);

            if (res.ok) {
              _context.next = 8;
              break;
            }

            if (!(parsedCalendarResponse.code === 17)) {
              _context.next = 7;
              break;
            }

            throw new Error(_common.recaptchaError);

          case 7:
            throw new Error(parsedCalendarResponse.message);

          case 8:
            resolve({
              status: _paywall.paywallStatus.PASS,
              payload: {
                externalId: parsedCalendarResponse.externalId
              }
            });

          case 9:
          case "end":
            return _context.stop();
        }
      }
    });
  })["catch"](function (e) {
    resolve(_objectSpread({}, _paywall.createCalendarError, {
      message: e.message
    }));
  });
};

exports.createCalendar = createCalendar;

var duplicateCalendar = function duplicateCalendar(_ref2) {
  var token = _ref2.token,
      captchaToken = _ref2.captchaToken,
      apiHost = _ref2.apiHost,
      id = _ref2.id,
      resolve = _ref2.resolve,
      primaryCalendarAccountId = _ref2.primaryCalendarAccountId;
  (0, _requests.getCalendarRequest)({
    token: token,
    captchaToken: captchaToken,
    id: id,
    apiHost: apiHost
  }).then(function _callee2(res) {
    var calendarResponse, parsedCalendarResponse, slots, place, description, subject, duration, calendarDetails, filteredSlots;
    return _regenerator["default"].async(function _callee2$(_context2) {
      while (1) {
        switch (_context2.prev = _context2.next) {
          case 0:
            _context2.next = 2;
            return _regenerator["default"].awrap(res.text());

          case 2:
            calendarResponse = _context2.sent;
            parsedCalendarResponse = JSON.parse(calendarResponse);

            if (res.ok) {
              _context2.next = 6;
              break;
            }

            throw new Error(parsedCalendarResponse.message);

          case 6:
            slots = parsedCalendarResponse.slots, place = parsedCalendarResponse.place, description = parsedCalendarResponse.description, subject = parsedCalendarResponse.subject, duration = parsedCalendarResponse.duration;
            calendarDetails = {
              place: place,
              description: description,
              subject: subject,
              duration: duration
            };
            filteredSlots = slots.filter(function (slot) {
              return +new Date(slot.start) > +new Date();
            }).map(function (slot) {
              return _objectSpread({}, slot, {
                attendee: null
              });
            });
            createCalendar({
              token: token,
              captchaToken: captchaToken,
              apiHost: apiHost,
              slots: filteredSlots,
              calendarDetails: calendarDetails,
              resolve: resolve,
              primaryCalendarAccountId: primaryCalendarAccountId
            });

          case 10:
          case "end":
            return _context2.stop();
        }
      }
    });
  })["catch"](function (e) {
    resolve(_objectSpread({}, _paywall.getCalendarError, {
      message: e.message
    }));
  });
};

exports.duplicateCalendar = duplicateCalendar;

var unarchiveActivity = function unarchiveActivity(_ref3) {
  var token = _ref3.token,
      apiHost = _ref3.apiHost,
      id = _ref3.id,
      resolve = _ref3.resolve;
  return (0, _requests.unarchiveActivityRequest)({
    token: token,
    apiHost: apiHost,
    id: id
  }).then(function () {
    resolve({
      status: _paywall.paywallStatus.PASS
    });
  })["catch"](function (e) {
    resolve(_objectSpread({}, _paywall.unarchiveError, {
      message: e.message
    }));
  });
};

exports.unarchiveActivity = unarchiveActivity;