public function updateAllEvent(ICalendarEvent $event) { try { $dbHandler = $this->getConnection(); $data = array(CalendarManager::EVENT_KEY_ID => $event->getId(), CalendarManager::EVENT_KEY_SUBJECT => $event->getSubject(), CalendarManager::EVENT_KEY_LOCATION => $event->getLocation(), CalendarManager::EVENT_KEY_DESCRIPTION => $event->getDescription(), CalendarManager::EVENT_KEY_ISALLDAY => $event->getIsAllDay(), CalendarManager::EVENT_KEY_TYPE => $event->getType(), CalendarManager::EVENT_KEY_PRIVACY => $event->getPrivacy(), CalendarManager::EVENT_KEY_CREATORID => $event->getCreatorId(), CalendarManager::EVENT_KEY_CALENDARID => $event->getCalendarId()); $sqlQuery = 'UPDATE ' . self::EVENT_TABLE_NAME . ' SET '; foreach ($data as $key => $value) { if ($key != CalendarManager::EVENT_KEY_ID) { $sqlQuery .= $key . ' = :' . $key . ', '; } } $sqlQuery = substr($sqlQuery, 0, -2); $sqlQuery .= ' WHERE ' . CalendarManager::EVENT_KEY_ID . ' = :' . CalendarManager::EVENT_KEY_ID; $stmt = $dbHandler->prepare($sqlQuery); $stmt->execute($data); } catch (Exception $e) { $this->destroyConnection(); throw new EyeDBException('An error occured while attempting to update event with ID "' . $event->getId() . '".', 0, $e); } $this->destroyConnection(); }
public function saveAllEvent(ICalendarEvent $event) { try { try { $this->getProvider()->retrieveCalendarById($event->getCalendarId()); $this->setCalendarId($event->getCalendarId()); } catch (EyeCalendarNotFoundException $e) { throw new EyeIntegrityConstraintViolationException('Cannot add an event to the unknown calendar "' . $event->getCalendarId() . '".', 0, $e); } try { $this->getProvider()->retrieveEventById($event->getId()); } catch (EyeEventNotFoundException $e) { SecurityManager::getInstance()->checkWrite($this); $eventId = $this->getProvider()->createEvent($event); self::$Logger->info('CalendarEvent created: ' . $event); return $eventId; } // + prevent updating creatorId (and calendarId if insufficient permission on target one) SecurityManager::getInstance()->checkWrite($this); $this->getProvider()->updateAllEvent($event); self::$Logger->info('CalendarEvent updated: ' . $event); } catch (Exception $e) { throw new EyeCalendarException('An error occured while saving event with ID ' . $event->getId() . ' (' . $event->getSubject() . ').', 0, $e); } }