/** * 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; }
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); },