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