lib/seatsio/events/change_object_status_request.rb



def create_change_object_status_request(type, object_or_objects, status, hold_token, order_id, event_key_or_keys, keep_extra_data, ignore_channels, channel_keys, allowed_previous_statuses, rejected_previous_statuses, resale_listing_id)
  result = {}
  result[:type] = type
  result[:objects] = normalize(object_or_objects)
  result[:type] = type
  result[:status] = status if type != Seatsio::StatusChangeType::RELEASE
  result[:holdToken] = hold_token if hold_token != nil
  result[:orderId] = order_id if order_id != nil
  if event_key_or_keys.is_a? Array
    result[:events] = event_key_or_keys
  else
    result[:events] = [event_key_or_keys]
  end
  result[:keepExtraData] = keep_extra_data if keep_extra_data != nil
  result[:ignoreChannels] = ignore_channels if ignore_channels != nil
  result[:channelKeys] = channel_keys if channel_keys != nil
  result[:allowedPreviousStatuses] = allowed_previous_statuses if allowed_previous_statuses != nil
  result[:rejectedPreviousStatuses] = rejected_previous_statuses if rejected_previous_statuses != nil
  result[:resaleListingId] = resale_listing_id if resale_listing_id != nil
  result
end

def normalize(object_or_objects)
  if object_or_objects.is_a? Array
    if object_or_objects.length == 0
      []
    end

    result = []
    object_or_objects.each do |object|
      result << object
    end
    return result

  end
  normalize([object_or_objects])
end