class SideSelector
Public Class Methods
add_side(side)
click to toggle source
# File lib/side_selector.rb, line 45 def self.add_side(side) params = side.params.merge( "pageId" => "SIDE_DETAIL", "shohinPretotypingCouponC" => "", "figure" => "1" # Quantity ) response = Request.post( "https://order.dominos.jp/eng/cart/add/side/", params, expect: :redirect, to: %r{\Ahttps?://order\.dominos\.jp/eng/cart/added/\z}, failure: "Couldn't add the side you selected" ) # For some reason we need to GET this URL otherwise it doesn't count as added <_< Request.get(response["Location"], expect: :redirect, to: "https://order.dominos.jp/eng/cart/", failure: "Couldn't add the side you selected") end
customize_side(side)
click to toggle source
# File lib/side_selector.rb, line 35 def self.customize_side(side) return side unless side.customizable? # Choosing the combo selected_combo_index = Ask.list "Choose the combo", side.available_combos.map(&:list_item) side.combo = side.available_combos[selected_combo_index] side end
select_sides()
click to toggle source
# File lib/side_selector.rb, line 3 def self.select_sides return unless Ask.confirm "Add sides?" response = Request.get("https://order.dominos.jp/eng/side/search/", expect: :ok, failure: "Couldn't get side list page") sides = Sides.from(response.body) cli = HighLine.new choices = sides.selection_list loop do puts "-" * 42 cli.choose do |menu| menu.prompt = "Add a side via number:" menu.choices(*(choices + ["Cancel"])) do |choice| index = choices.index(choice) if index && index < choices.count selected_side = sides[index] puts "#{"→".colorize(:green)} #{selected_side.name.colorize(:blue)}" add_side(customize_side(selected_side)) end end menu.default = "Cancel" end break unless Ask.confirm "Add another side?" end end