Example #1
0
/**
 * Create a single instance busytime for the given event object.
 *
 * @param {Object} event to create busytime for.
 */
function createBusytime(event) {
  var busytime = {
    _id: event._id + '-' + uuid.v4(),
    eventId: event._id,
    calendarId: event.calendarId,
    start: event.remote.start,
    end: event.remote.end
  };
  var alarms = event.remote.alarms;
  if (alarms && alarms.length) {
    busytime.alarms = [];
    var i = 0;
    var len = alarms.length;
    for (; i < len; i++) {
      var alarmDate = Calc.dateFromTransport(busytime.end);
      if (alarmDate.valueOf() < Date.now()) {
        continue;
      }
      var startDate = {};
      for (var j in busytime.start) {
        startDate[j] = busytime.start[j];
      }
      startDate.utc += (alarms[i].trigger * 1000);
      var newAlarm = {
        start: startDate
      };
      busytime.alarms.push(newAlarm);
    }
  }
  if (event.remote.isException || event.remote.recurrenceId) {
    busytime.recurrenceId = event.remote.recurrenceId;
    busytime.isException = event.remote.isException;
  }
  return busytime;
}
Example #2
0
  formatBusytime: function(time) {
    var eventId = this.eventIdFromRemote(time, !time.isException);
    var id = eventId + '-' + uuid.v4();
    var calendarId = this.calendar._id;

    time._id = id;
    time.calendarId = calendarId;
    time.eventId = eventId;

    if (time.alarms) {
      var i = 0;
      var len = time.alarms.length;
      var alarm;

      for (; i < len; i++) {
        alarm = time.alarms[i];
        alarm.eventId = eventId;
        alarm.busytimeId = id;
      }
    }

    return this._busytimeStore.initRecord(time);
  },