class OrderPayment
Attributes
default_name[RW]
last_review[RW]
note[RW]
page[RW]
Public Instance Methods
confirm()
click to toggle source
# File lib/order_payment.rb, line 45 def confirm puts unless Ask.confirm "Place order?" puts "Stopped by user" return end Request.post("https://order.dominos.jp/eng/regi/insert", @insert_params, expect: :redirect, to: %r{\Ahttps://order\.dominos\.jp/eng/regi/complete/\?}, failure: "Order couldn't be placed for some reason :(") puts puts "Success!" puts "Be sure to check the Domino's Pizza website in your browser "\ "to track your order status via the Pizza Tracker, and win a Mystery Deal coupon" end
display()
click to toggle source
# File lib/order_payment.rb, line 41 def display puts last_review end
input()
click to toggle source
# File lib/order_payment.rb, line 11 def input Request.get("https://order.dominos.jp/eng/regi/", expect: :ok, failure: "Couldn't get payment page") puts puts puts "#{"Payment information".colorize(:blue)} (you will be able to review your order later)" @credit_card = Preferences.instance.credit_card || CreditCard.new @credit_card.input(default_name) self.note = Preferences.instance.note || Ask.input("Any special requests? (not food preparation requests)") end
validate()
click to toggle source
# File lib/order_payment.rb, line 26 def validate params = default_params.merge("bikoText" => note).merge(@credit_card.params) response = Request.post("https://order.dominos.jp/eng/regi/confirm", params, expect: :ok, failure: "Couldn't submit payment information") doc = Nokogiri::HTML(response.body) token_input = doc.css("input[name='org.apache.struts.taglib.html.TOKEN']").first raise "Couldn't get token for order validation" unless token_input && token_input["value"] @insert_params = doc.css("input").map { |input| [input["name"], input["value"]] }.to_h self.last_review = OrderLastReview.new(doc) self.page = response.body end
Private Instance Methods
default_params()
click to toggle source
# File lib/order_payment.rb, line 65 def default_params { "inquiryRiyoDStr" => "undefined", "inquiryCardComCd" => "undefined", "inquiryCardBrand" => "undefined", "inquiryCreditCardNoXXX" => "undefined", "inquiryGoodThruMonth" => "undefined", "inquiryGoodThruYear" => "undefined", "creditCard" => "undefined", "receiptK" => "0", "exteriorPayment" => "4", "reuseCreditDiv" => "1", "rakutenPayment" => "1", "isDisplayMailmagaArea" => "true", "isProvisionalKokyakuModalView" => "false", "isProvisionalKokyaku" => "false" } end