You are here

function bat_api_services_edit_event in Booking and Availability Management API 7.2

Update an existing event.

Parameters

int $event_id:

array $bat_event_data:

1 string reference to 'bat_api_services_edit_event'
bat_api_services_resources in ./bat_api.module
Implements hook_services_resources().

File

./bat_api.module, line 1067
API access to booking data for BAT.

Code

function bat_api_services_edit_event($event_id, $bat_event_data) {
  $return = new stdClass();
  $return->status = 0;
  $return->sessid = session_id();
  if ($event_id && ($event = bat_event_load($event_id))) {
    $event->start_date = isset($bat_event_data['start_date']) ? $bat_event_data['start_date'] : $event->start_date;
    $event->end_date = isset($bat_event_data['end_date']) ? $bat_event_data['end_date'] : $event->end_date;
    $event->uid = isset($bat_event_data['uid']) ? $bat_event_data['uid'] : $event->uid;
    $event->data = isset($bat_event_data['data']) ? $bat_event_data['data'] : $event->data;
    $event->changed = REQUEST_TIME;

    // Set new target_id if present.
    if (isset($bat_event_data['target_id'])) {
      $event_type = bat_event_type_load($event->type);

      // Construct target entity reference field name using this event type's target entity type.
      $target_field_name = 'event_' . $event_type->target_entity_type . '_reference';
      $event->{$target_field_name} = array(
        LANGUAGE_NONE => array(
          0 => array(
            'target_id' => $bat_event_data['target_id'],
          ),
        ),
      );
    }

    // Set new state id if present.
    if (isset($bat_event_data['state_id'])) {
      $event->event_state_reference = array(
        LANGUAGE_NONE => array(
          0 => array(
            'state_id' => $bat_event_data['state_id'],
          ),
        ),
      );
    }
    $event
      ->save();
    $return->status = 1;
  }
  elseif ($event_id == 'undefined') {

    // This is a new event, save it.
    $event = bat_event_create(array(
      'type' => $bat_event_data['type'],
    ));
    $event->start_date = $bat_event_data['start_date'];
    $event->end_date = $bat_event_data['end_date'];
    $event->uid = isset($bat_event_data['uid']) ? $bat_event_data['uid'] : 0;
    $event->data = isset($bat_event_data['data']) ? $bat_event_data['data'] : NULL;
    $event->created = REQUEST_TIME;
    $event->changed = REQUEST_TIME;

    // Set new target_id if present.
    if (isset($bat_event_data['target_id'])) {
      $event_type = bat_event_type_load($event->type);

      // Construct target entity reference field name using this event type's target entity type.
      $target_field_name = 'event_' . $event_type->target_entity_type . '_reference';
      $event->{$target_field_name} = array(
        LANGUAGE_NONE => array(
          0 => array(
            'target_id' => $bat_event_data['target_id'],
          ),
        ),
      );
    }

    // Set new state id if present.
    if (isset($bat_event_data['state_id'])) {
      $event->event_state_reference = array(
        LANGUAGE_NONE => array(
          0 => array(
            'state_id' => $bat_event_data['state_id'],
          ),
        ),
      );
    }
    $event
      ->save();
    $return->status = 1;
  }
  return $return;
}