class Seatsio::ChartsClient

Seatsio Charts client

def add_category(key, category)

def add_category(key, category)
  @http_client.post("charts/#{key}/categories", category)
end

def add_tag(key, tag)

def add_tag(key, tag)
  @http_client.post("charts/#{key}/tags/#{CGI::escape(tag)}")
end

def build_chart_request(name, venue_type, categories)

def build_chart_request(name, venue_type, categories)
  result = {}
  result['name'] = name if name
  result['venueType'] = venue_type if venue_type
  result['categories'] = categories if categories
  result
end

def copy(key)

def copy(key)
  response = @http_client.post("charts/#{key}/version/published/actions/copy")
  Chart.new(response)
end

def copy_draft_version(key)

def copy_draft_version(key)
  response = @http_client.post("charts/#{key}/version/draft/actions/copy")
  Chart.new(response)
end

def copy_from_workspace_to(chart_key, from_workspace_key, to_workspace_key)

def copy_from_workspace_to(chart_key, from_workspace_key, to_workspace_key)
  url = "charts/#{chart_key}/version/published/actions/copy/from/#{from_workspace_key}/to/#{to_workspace_key}"
  response = @http_client.post url
  Chart.new(response)
end

def copy_to_workspace(chart_key, to_workspace_key)

def copy_to_workspace(chart_key, to_workspace_key)
  url = "charts/#{chart_key}/version/published/actions/copy-to-workspace/#{to_workspace_key}"
  response = @http_client.post url
  Chart.new(response)
end

def create(name: nil, venue_type: nil, categories: nil)

def create(name: nil, venue_type: nil, categories: nil)
  payload = build_chart_request name, venue_type, categories
  response = @http_client.post('charts', payload)
  Chart.new(response)
end

def discard_draft_version(key)

def discard_draft_version(key)
  @http_client.post("charts/#{key}/version/draft/actions/discard")
end

def initialize(http_client)

def initialize(http_client)
  @http_client = http_client
  @archive = Pagination::Cursor.new(Chart, 'charts/archive', @http_client)
end

def list(chart_filter: nil, tag: nil, expand_events: false, expand_validation: false, expand_venue_type: false, expand_zones: false)

def list(chart_filter: nil, tag: nil, expand_events: false, expand_validation: false, expand_venue_type: false, expand_zones: false)
  cursor = Pagination::Cursor.new(Chart, 'charts', @http_client)
  cursor.set_query_param('filter', chart_filter)
  cursor.set_query_param('tag', tag)
  expand_params = list_expand_params(expand_events, expand_validation, expand_venue_type, expand_zones)
  cursor.set_query_param('expand', expand_params) unless expand_params.empty?
  cursor
end

def list_all_tags

def list_all_tags
  response = @http_client.get('charts/tags')
  response['tags']
end

def list_categories(chart_key)

def list_categories(chart_key)
  response = @http_client.get("charts/#{chart_key}/categories")
  Category.create_list(response['categories'])
end

def list_expand_params(expand_events, expand_validation, expand_venue_type, expand_zones)

def list_expand_params(expand_events, expand_validation, expand_venue_type, expand_zones)
  result = []
  if expand_events
    result.push('events')
  end
  if expand_validation
    result.push('validation')
  end
  if expand_venue_type
    result.push('venueType')
  end
  if expand_zones
    result.push('zones')
  end
  result
end

def move_out_of_archive(chart_key)

def move_out_of_archive(chart_key)
  @http_client.post("charts/#{chart_key}/actions/move-out-of-archive")
end

def move_to_archive(chart_key)

def move_to_archive(chart_key)
  @http_client.post("charts/#{chart_key}/actions/move-to-archive")
end

def publish_draft_version(chart_key)

def publish_draft_version(chart_key)
  @http_client.post("charts/#{chart_key}/version/draft/actions/publish")
end

def remove_category(key, category_key)

def remove_category(key, category_key)
  @http_client.delete("charts/#{key}/categories/#{category_key}")
end

def remove_tag(key, tag)

def remove_tag(key, tag)
  @http_client.delete("charts/#{key}/tags/#{tag}")
end

def retrieve(chart_key)

Returns:
  • (Seatsio::Chart) -
def retrieve(chart_key)
  response = @http_client.get("charts/#{chart_key}")
  Chart.new(response)
end

def retrieve_draft_version(key)

def retrieve_draft_version(key)
  @http_client.get("charts/#{key}/version/draft")
end

def retrieve_draft_version_thumbnail(key)

def retrieve_draft_version_thumbnail(key)
  @http_client.get_raw("charts/#{key}/version/draft/thumbnail")
end

def retrieve_published_version(key)

def retrieve_published_version(key)
  @http_client.get("charts/#{key}/version/published")
end

def retrieve_published_version_thumbnail(key)

def retrieve_published_version_thumbnail(key)
  @http_client.get_raw("charts/#{key}/version/published/thumbnail")
end

def retrieve_with_events(chart_key)

def retrieve_with_events(chart_key)
  response = @http_client.get("charts/#{chart_key}?expand=events")
  Chart.new(response)
end

def update(key:, new_name: nil, categories: nil)

def update(key:, new_name: nil, categories: nil)
  payload = build_chart_request new_name, nil, categories
  @http_client.post("charts/#{key}", payload)
end

def update_category(chart_key:, category_key:, label: nil, color: nil, accessible: nil)

def update_category(chart_key:, category_key:, label: nil, color: nil, accessible: nil)
  payload = {}
  payload['label'] = label if label != nil
  payload['color'] = color if color != nil
  payload['accessible'] = accessible if accessible != nil
  @http_client.post("/charts/#{chart_key}/categories/#{category_key}", payload)
end

def validate_draft_version(chart_key)

def validate_draft_version(chart_key)
  response = @http_client.post("charts/#{chart_key}/version/draft/actions/validate")
  Seatsio::ChartValidationResult.new(response)
end

def validate_published_version(chart_key)

def validate_published_version(chart_key)
  response = @http_client.post("charts/#{chart_key}/version/published/actions/validate")
  Seatsio::ChartValidationResult.new(response)
end