class OrderInformation
Attributes
name[RW]
phone_number[RW]
Public Instance Methods
confirm()
click to toggle source
# File lib/order_information.rb, line 49 def confirm raise "Stopped by user" unless Ask.confirm "Continue?" Request.post("https://order.dominos.jp/eng/receipt/complete", @page_params, expect: :redirect, to: "https://order.dominos.jp/eng/menu/", failure: "Couldn't validate your information") end
display()
click to toggle source
# File lib/order_information.rb, line 38 def display doc = Nokogiri::HTML(@second_response.body) info = doc.css(".m-input__heading").map(&:text). zip(doc.css(".section_content_table_td").map(&:text)).to_h @page_params = doc.css("input[type=hidden]").map do |input| [input["name"], input["value"]] end.to_h info.each { |title, value| puts "#{title.colorize(:blue)}: #{value}" } end
input()
click to toggle source
# File lib/order_information.rb, line 5 def input response = Request.get("https://order.dominos.jp/eng/receipt/input/", expect: :ok, failure: "Couldn't get information input page") saved_name = Name.from(response.body) phone_numbers = PhoneNumbers.from(response.body) self.name = Preferences.instance.name || Ask.input("Name", default: saved_name) self.phone_number = phone_numbers.find_number(Preferences.instance.phone_number) unless phone_number phone_number_index = Ask.list "Phone Number", phone_numbers.selection_list self.phone_number = phone_numbers[phone_number_index] end @first_response = response end
validate()
click to toggle source
# File lib/order_information.rb, line 23 def validate raise "Missing attributes" unless name && phone_number # Get the default parameters and add in the client name and phone number params = default_params.merge( "kokyakuNm" => name, "telSeq" => phone_number.value ) @second_response = Request.post("https://order.dominos.jp/eng/receipt/confirm", params, expect: :ok, failure: "Couldn't set your information") do |resp| resp.body.include?("Order Type, Day&Time and Your Store") end end
Private Instance Methods
default_params()
click to toggle source
# File lib/order_information.rb, line 59 def default_params kokyaku_input = Nokogiri::HTML(@first_response.body).css("input[name=kokyakuC]").first raise "Couldn't find client information" unless kokyaku_input { "kokyakuC" => kokyaku_input["value"], # Rest is untouched "errorMessage" => "", "receiptMethod" => "1", # Receipt method again... "deleteTelSeq" => "", "telNoRadio" => "0", "telNo" => "" } end