class Centaman::Filter

Attributes

booking_time_id[R]
booking_type_id[R]
email[R]
end_date[R]
member_code[R]
membership_type_id[R]
start_date[R]

Public Class Methods

new(args = {}) click to toggle source
# File lib/centaman/filter.rb, line 7
def initialize(args = {})
  @booking_type_id = args[:booking_type_id].try(:to_i)
  @booking_time_id = args[:booking_time_id].try(:to_i)
  @start_date = args[:start_date]
  @end_date = args[:end_date]
  @membership_type_id = args.fetch(:membership_type_id, nil).try(:to_i)
  @member_code = args.fetch(:member_code, nil).try(:to_i)
  @email = args.fetch(:email, nil)
end

Public Instance Methods

add_ons() click to toggle source
# File lib/centaman/filter.rb, line 59
def add_ons
  Centaman::Service::AddOn.new(membership_type_id: membership_type_id).objects
end
booking_times() click to toggle source
# File lib/centaman/filter.rb, line 34
def booking_times
  @booking_times ||= Centaman::Service::BookingTime.new(
    booking_type_id: booking_type_id,
    start_date: start_date,
    end_date: end_date
  ).objects
end
booking_types() click to toggle source
# File lib/centaman/filter.rb, line 26
def booking_types
  @booking_types ||= Centaman::Service::BookingType.new.objects
end
capacity() click to toggle source
# File lib/centaman/filter.rb, line 46
def capacity
  @capacity ||= Centaman::Service::Capacity.new(booking_time_id: booking_time_id, start_date: start_date).objects.first
end
find_add_on(membership_type_id, id) click to toggle source
# File lib/centaman/filter.rb, line 63
def find_add_on(membership_type_id, id)
  Centaman::Service::AddOn.find(membership_type_id, id)
end
find_booking_time(booking_time_id) click to toggle source
# File lib/centaman/filter.rb, line 21
def find_booking_time(booking_time_id)
  raise "booking_time_id is required for find_booking_time method of #{self.class.name} class" if booking_time_id.nil?
  booking_times.detect { |c| c.id.to_s == booking_time_id.to_s }
end
find_booking_type(booking_type_id) click to toggle source
# File lib/centaman/filter.rb, line 17
def find_booking_type(booking_type_id)
  booking_types.detect { |c| c.booking_type_id == booking_type_id }
end
find_member(args) click to toggle source
# File lib/centaman/filter.rb, line 67
def find_member(args)
  Centaman::Service::Member.new(
    member_code: args[:member_code],
    email: args[:email]
  ).objects
end
find_membership_type(membership_type_id) click to toggle source
# File lib/centaman/filter.rb, line 54
def find_membership_type(membership_type_id)
  raise "membership_type_id is required for find_membership_type method of #{self.class.name} class" if membership_type_id.nil?
  Centaman::Service::MembershipType.find(membership_type_id)
end
gift_tickets() click to toggle source
# File lib/centaman/filter.rb, line 42
def gift_tickets
  @gift_tickets ||= Centaman::Service::GiftTicket.new.objects
end
membership_types() click to toggle source
# File lib/centaman/filter.rb, line 50
def membership_types
  Centaman::Service::MembershipType.new.objects
end
tickets() click to toggle source
# File lib/centaman/filter.rb, line 30
def tickets
  @tickets ||= Centaman::Service::TicketType.new(booking_time_id: booking_time_id).objects
end