Class: EventbriteSDK::Report

Inherits:
Object
  • Object
show all
Defined in:
lib/eventbrite_sdk/report.rb

Constant Summary collapse

STRING_KEYS =
%i[
  start_date
  end_date
  date_facet
  event_status
  timezone
  group_by
].freeze
VALID_REPORTS =
%i[attendees sales].freeze

Instance Method Summary collapse

Constructor Details

#initializeReport

Returns a new instance of Report.



13
14
15
# File 'lib/eventbrite_sdk/report.rb', line 13

def initialize
  @query = {}
end

Instance Method Details

#event_ids(*ids) ⇒ Object



17
18
19
20
21
# File 'lib/eventbrite_sdk/report.rb', line 17

def event_ids(*ids)
  @query[:event_ids] = ids.join(',')

  self
end

#filter_by(filters) ⇒ Object



23
24
25
26
27
# File 'lib/eventbrite_sdk/report.rb', line 23

def filter_by(filters)
  @query[:filter_by] = filters.to_json

  self
end

#queryObject



36
37
38
# File 'lib/eventbrite_sdk/report.rb', line 36

def query
  @query.dup # Don't allow mutation
end

#retrieve(type = nil, sdk = EventbriteSDK) ⇒ Object



40
41
42
43
44
45
46
# File 'lib/eventbrite_sdk/report.rb', line 40

def retrieve(type = nil, sdk = EventbriteSDK)
  unless VALID_REPORTS.include?(type)
    raise ArgumentError, "`:type` is not of #{VALID_REPORTS}"
  end

  sdk.get(url: "reports/#{type}", query: query)
end