/** * Retrieve events filtered by employee, client, date or status. * * @since 1.4 * @return void */ public function list_events() { $response = array(); if (!mdjm_employee_can('read_events', $this->user_id)) { $this->no_permsission(); } if (!isset($this->request['employee_id']) && !mdjm_employee_can('read_events_all', $this->user_id)) { $this->no_permsission(); } do_action('mdjm_before_api_event_list', $this); if (isset($this->request['employee_id'])) { $events = mdjm_get_employee_events($this->request['employee_id']); } elseif (isset($this->request['client_id'])) { $events = mdjm_get_client_events($this->request['client_id']); } elseif (isset($this->request['date'])) { $events = mdjm_get_events_by_date($this->request['date']); } elseif (isset($this->request['status'])) { $events = mdjm_get_events_by_status($this->request['status']); } else { $events = mdjm_get_events(); } if (!$events) { $error = array(); $error['error'] = sprintf(__('No %s found.', 'mobile-dj-manager'), mdjm_get_label_plural(true)); $this->data = $error; $this->output(); } $response['events'] = array(); $i = 0; foreach ($events as $event) { $response['events'][$event->ID] = mdjm_get_event_data($event->ID); $i++; } $response['count'] = $i; $this->data = array_merge($this->data, $response); do_action('mdjm_after_api_event_list', $this); $this->output(); }
/** * Retrieve a count of events by status. * * @since 1.3 * @param str $status The event status. * @return int The number of events with the status. */ function mdjm_count_events_by_status($status) { $count = 0; $events = mdjm_get_events_by_status($status); if ($events) { $count = count($events); } return $count; }