public function delete($auto = false) { $this->requiresLogin(); $event = $this->event()->get(0 + $this->id); if (!isset($event['user']) || $event['user'] != Bootstrap::$main->user['id']) { return $this->error(19); } $model = new eventModel($event); if (!$model->getGuests() && count($model->get_dates($model->id, false)) == 1) { $model->remove(); return $this->status(); } elseif (!$auto && $model->d_event_start < Bootstrap::$main->now) { return $this->error(60); } else { $guests = $model->getGuests(); $guestModel = new guestModel(); $otoken = $auto ? 'auto-cancel' : 'host-cancel'; Bootstrap::$main->human_datetime_format(); $event = $this->event()->get(0 + $this->id); $host = $this->user()->get($event['user']); if (is_array($guests)) { foreach ($guests as $guest) { $guestModel->get($guest['guest_id']); $guestModel->cancel_reason = $this->data('reason'); $guestModel->d_cancel = Bootstrap::$main->now; $guestModel->canceler = Bootstrap::$main->user['id']; $guestModel->save(); $ics = Ics::cancelation($event, $host, $guest, $event['create'], $event['change']); $data = $guestModel->data(); $data['event'] = $event; $data['guest'] = $guest; $data['host'] = $host; if ($guestModel->d_payment) { Tools::observe($otoken, $data, [['cancel.ics' => $ics]]); } } } $model->active = -1; $model->save(); Tools::log('event-' . $otoken, ['event' => $model->data(), 'guests' => $guests]); } return $this->status(); }
<?php require_once __DIR__ . '/../base.php'; require_once __DIR__ . '/../../rest/models/eventModel.php'; require_once __DIR__ . '/../../rest/controllers/eventController.php'; $event = new eventModel(); $events = $event->getEventsAfterDeadlineToCancel(); if (is_array($events)) { foreach ($events as $id) { $guests = $event->getGuests($id); if (!$guests || !count($guests)) { continue; } $e = $event->get($id); Bootstrap::$main->user['id'] = $e['user']; $eventController = new eventController($id, []); $eventController->delete(true); } }