Repository URL to install this package:
|
Version:
2.2.0 ▾
|
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
var _regenerator = require('babel-runtime/regenerator');
var _regenerator2 = _interopRequireDefault(_regenerator);
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
exports.onSelectPrimaryCalendar = onSelectPrimaryCalendar;
exports.watchSelectPrimaryCalendar = watchSelectPrimaryCalendar;
exports.default = selectPrimaryCalendarSaga;
var _effects = require('redux-saga/effects');
var _selectPrimaryCalendar = require('../actions/selectPrimaryCalendar');
var _api = require('./api');
var _api2 = _interopRequireDefault(_api);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var _marked = /*#__PURE__*/_regenerator2.default.mark(onSelectPrimaryCalendar),
_marked2 = /*#__PURE__*/_regenerator2.default.mark(watchSelectPrimaryCalendar),
_marked3 = /*#__PURE__*/_regenerator2.default.mark(selectPrimaryCalendarSaga);
function onSelectPrimaryCalendar(options, action) {
var calendarId, fetchOptions, state, token, user;
return _regenerator2.default.wrap(function onSelectPrimaryCalendar$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
calendarId = action.calendarId;
fetchOptions = _extends({}, options, {
method: 'PUT',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({
primaryCalendarAccountId: calendarId
})
});
_context.prev = 2;
_context.next = 5;
return (0, _effects.select)(function (globalState) {
return globalState[options.domain || 'user'];
});
case 5:
state = _context.sent;
token = state.data.accessToken;
// Given we're logged in (otherwise you can't see the settings),
// we don't need to force a call to retrieve the token as a fallback)
_context.next = 9;
return (0, _effects.call)(_api2.default.me, token, fetchOptions);
case 9:
user = _context.sent;
_context.next = 12;
return (0, _effects.put)((0, _selectPrimaryCalendar.selectPrimaryCalendarSuccess)(user.primaryCalendarAccountId));
case 12:
_context.next = 18;
break;
case 14:
_context.prev = 14;
_context.t0 = _context['catch'](2);
_context.next = 18;
return (0, _effects.put)((0, _selectPrimaryCalendar.selectPrimaryCalendarError)(_context.t0));
case 18:
case 'end':
return _context.stop();
}
}
}, _marked, this, [[2, 14]]);
}
function watchSelectPrimaryCalendar(options) {
return _regenerator2.default.wrap(function watchSelectPrimaryCalendar$(_context2) {
while (1) {
switch (_context2.prev = _context2.next) {
case 0:
_context2.next = 2;
return (0, _effects.takeLatest)(_selectPrimaryCalendar.SelectPrimaryCalendarActionTypes.SELECT_PRIMARY_CALENDAR, onSelectPrimaryCalendar, options);
case 2:
case 'end':
return _context2.stop();
}
}
}, _marked2, this);
}
function selectPrimaryCalendarSaga() {
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
return _regenerator2.default.wrap(function selectPrimaryCalendarSaga$(_context3) {
while (1) {
switch (_context3.prev = _context3.next) {
case 0:
_context3.next = 2;
return (0, _effects.all)([(0, _effects.call)(watchSelectPrimaryCalendar, options)]);
case 2:
case 'end':
return _context3.stop();
}
}
}, _marked3, this);
}