From 40fbdbbef86b2b882765d6553fc357cd9a978706 Mon Sep 17 00:00:00 2001 From: Jules Laplace Date: Mon, 30 Nov 2015 12:58:41 -0500 Subject: populate address --- StoneIsland/www/js/lib/cart/CartPayment.js | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) (limited to 'StoneIsland/www/js/lib/cart/CartPayment.js') diff --git a/StoneIsland/www/js/lib/cart/CartPayment.js b/StoneIsland/www/js/lib/cart/CartPayment.js index 62dfe32d..d052e31f 100644 --- a/StoneIsland/www/js/lib/cart/CartPayment.js +++ b/StoneIsland/www/js/lib/cart/CartPayment.js @@ -11,7 +11,7 @@ var CartPayment = FormView.extend({ cc_list_mode: false, events: { - "change [name=same_as_shipping]": "toggle_shipping", + "change [name=SameAsShipping]": "toggle_shipping", "click .address_dropdown": "toggle_address", "click .cc_dropdown": "toggle_cc", }, @@ -20,10 +20,14 @@ var CartPayment = FormView.extend({ this.parent = opt.parent this.$form = this.$("form") this.$msg = this.$(".msg") + this.$same_as_shipping = this.$("[name=SameAsShipping]") + this.$billing_address_rapper = this.$(".billing_address_rapper") this.$address_list = this.$(".address_list") this.$address_form = this.$(".address") + this.$address_dropdown = this.$(".address_dropdown") this.$cc_list = this.$(".cc_list") this.$cc_form = this.$(".cc") + this.$cc_dropdown = this.$(".cc_dropdown") this.address = new AddressView ({ parent: this, checkPhone: false }) this.cc = new CreditCardView ({ parent: this }) @@ -48,11 +52,20 @@ var CartPayment = FormView.extend({ this.populate() this.deferScrollToTop() }, + + toggle_shipping: function(){ + setTimeout(function(){ + var state = this.$same_as_shipping.prop("checked") + this.$billing_address_rapper.toggle( ! state ) + }.bind(this)) + }, toggle_address: function(state){ if (! app.account.ccs.length) { state = false } + // this.$address_dropdown.toggle( !! app.account.ccs.length ) + this.address_list_mode = typeof state == "boolean" ? state : ! this.list_mode this.address.disabled = this.address_list_mode this.$address_form.toggle(! this.address_list_mode) @@ -63,6 +76,8 @@ var CartPayment = FormView.extend({ if (! app.account.ccs.length) { state = false } + // this.$cc_dropdown.toggle( !! app.account.ccs.length ) + this.cc_list_mode = typeof state == "boolean" ? state : ! this.cc_list_mode this.cc.disabled = this.cc_list_mode this.$cc_form.toggle(! this.cc_list_mode) @@ -70,6 +85,12 @@ var CartPayment = FormView.extend({ }, populate: function(){ + this.$(".save_as_default").show() + this.$address_list.empty() + this.$cc_list.empty() + this.toggle_address( !! app.account.ccs.length ) + this.toggle_cc( !! app.account.ccs.length ) + app.account.ccs.forEach(function(cc){ console.log(cc) -- cgit v1.2.3-70-g09d2 From 2c3453e7c471034e992c35b23ffa8b523a44afd4 Mon Sep 17 00:00:00 2001 From: Jules Laplace Date: Mon, 30 Nov 2015 13:49:36 -0500 Subject: use_stored_credit_card --- StoneIsland/www/js/lib/cart/CartPayment.js | 41 +++++++++++++++++++++++++----- StoneIsland/www/js/sdk/cart.js | 20 +++++++++------ StoneIsland/www/js/sdk/payment.js | 2 -- test/test/03-address.js | 5 ++++ test/test/04-cart.js | 23 +++++++++-------- test/test/05-cart-flows.js | 2 +- 6 files changed, 64 insertions(+), 29 deletions(-) (limited to 'StoneIsland/www/js/lib/cart/CartPayment.js') diff --git a/StoneIsland/www/js/lib/cart/CartPayment.js b/StoneIsland/www/js/lib/cart/CartPayment.js index d052e31f..fec5e1d1 100644 --- a/StoneIsland/www/js/lib/cart/CartPayment.js +++ b/StoneIsland/www/js/lib/cart/CartPayment.js @@ -36,13 +36,6 @@ var CartPayment = FormView.extend({ this.cc.disabled = true }, - // sdk.cart.set_credit_card - // sdk.payment.list_credit_cards - // sdk.payment.add_credit_card - // sdk.payment.delete_credit_card - // sdk.payment.get_payment_types - // sdk.cart.use_stored_credit_card - show: function(){ document.body.className = "cart" app.cart.el.className = "payment" @@ -112,6 +105,40 @@ var CartPayment = FormView.extend({ this.$cc_list.append(cc_t) }) }, + + finalize: function(data){ + var shipping_info = {}, address_data, address_id, cc_info = {}, cc_data, cc_id + var shipping_type = $("[name=ShippingType]").filter(function(){ return $(this).prop("checked") }).val() + + if (this.list_mode) { + address_id = $("[name=AddressId]").filter(function(){ return $(this).prop("checked") }).val() + address_data = app.account.addressLookup[ address_id ] + } + else { + address_data = data + } + if (this.cc_list_mode) { + cc_id = $("[name=CCId]").filter(function(){ return $(this).prop("checked") }).val() + cc_data = app.account.ccLookup[ cc_id ] + } + else { + cc_data = data + } + + shipping_info.Name = address_data.Name + shipping_info.Surname = address_data.Surname + shipping_info.Email = auth.user.Email + shipping_info.Phone = address_data.Phone + shipping_info.Mobile = address_data.Phone + shipping_info.StreetWithNumber = address_data.Address + shipping_info.PostalCode = address_data.ZipCode + shipping_info.City = address_data.City + shipping_info.Province = address_data.Province + shipping_info.Region = address_data.Province + shipping_info.CountryCode = "US" + + return shipping_info + }, success: function(){ app.router.go('cart/confirm') diff --git a/StoneIsland/www/js/sdk/cart.js b/StoneIsland/www/js/sdk/cart.js index bbd03299..0f8f6f99 100644 --- a/StoneIsland/www/js/sdk/cart.js +++ b/StoneIsland/www/js/sdk/cart.js @@ -105,7 +105,6 @@ sdk.cart = (function(){ }) } - // NOTE: data might be wrapped in a Receiver object cart.set_shipping_address = function(opt){ return $.ajax({ method: "PUT", @@ -163,6 +162,17 @@ sdk.cart = (function(){ // NB: if "verification number" is 1, use CVV/CID/CVC security code // if "verification number" is 2, use "Issue Number" cart.use_stored_credit_card = function(opt){ + var data = { + "Guid": opt.data.guid, + "UserId": auth.user_id, + "AccessToken": auth.access_token, + } + if (opt.data.cvv) { + data["Cvv"] = opt.data.cvv + } + if (opt.data.issue) { + data["Issue"] = opt.data.issue + } return $.ajax({ method: "PUT", url: sdk.path("Cart.API/1.6", "carts/" + cart.id + "/userCreditCard.json"), @@ -170,13 +180,7 @@ sdk.cart = (function(){ "x-yoox-appname": auth.appname, "x-yoox-cart-token": cart.token, }, - data: JSON.stringify({ // NB may be wrapped in UserCreditCard object - "Guid": opt.guid, - "UserId": auth.user_id, - "AccessToken": auth.access_token, - "Cvv": opt.cvv, - "Issue": opt.issue, - }), + data: JSON.stringify(data), success: function(data){ // console.log(data) opt.success(data) diff --git a/StoneIsland/www/js/sdk/payment.js b/StoneIsland/www/js/sdk/payment.js index dcf7d7d4..283fee92 100644 --- a/StoneIsland/www/js/sdk/payment.js +++ b/StoneIsland/www/js/sdk/payment.js @@ -18,8 +18,6 @@ sdk.payment = (function(){ }) } - // LISTING A CREDIT CARD ONCE A CARD HAS BEEN ADDED PRODUCES ERROR - payment.list_credit_cards = function(opt){ return $.ajax({ method: "GET", diff --git a/test/test/03-address.js b/test/test/03-address.js index 728d1831..26a7124d 100644 --- a/test/test/03-address.js +++ b/test/test/03-address.js @@ -73,6 +73,7 @@ describe('address', function(){ }) }) +/* describe('#update()', function(){ it('updates addresses', function(done){ var a = addresses[0] @@ -86,12 +87,16 @@ describe('address', function(){ }) }) }) +*/ describe('#destroy()', function(){ it('destroys addresses', function(done){ + console.log("DESTROY >>", addresses[0].Id) promise(sdk.address.destroy, { id: addresses[0].Id }).then(function(data){ assert(data.Header.StatusCode == 200) done() + }).error(function(data){ + console.log(data.responseText) }) }) }) diff --git a/test/test/04-cart.js b/test/test/04-cart.js index f608ffb5..9c6a7931 100644 --- a/test/test/04-cart.js +++ b/test/test/04-cart.js @@ -283,33 +283,34 @@ describe('payment', function(){ }) }) }) - describe('#list_credit_cards()', function(){ + describe('#list_credit_cards()', function(){ // send nothing it('list credit cards', function(done){ promise(sdk.payment.list_credit_cards, { data: {} }).then(function(data){ - assert(data.Header.StatusCode == 200) + assert(data.Header.StatusCode == 200) done() }) }) }) - // TODO: list the credit cards on file first describe('#use_stored_credit_card()', function(){ - /* - it('use stored credit card', function(done){ + + it('uses stored credit card', function(done){ var card_on_file = { - "Guid": opt.guid, - "UserId": auth.user_id, - "AccessToken": auth.access_token, - "Cvv": opt.cvv, - "Issue": opt.issue, + "guid": last_guid, + "cvv": 123, + // "issue": 4248, } + console.log("LAST GUID >>", last_guid) promise(sdk.cart.use_stored_credit_card, { data: card_on_file }).then(function(data){ assert(data.Header.StatusCode == 200) done() + }).error(function(data){ + console.log("use_stored_credit_card failed") + console.log(data.responseText) }) }) - */ + }) }) diff --git a/test/test/05-cart-flows.js b/test/test/05-cart-flows.js index 96ccfaf5..40230b9b 100644 --- a/test/test/05-cart-flows.js +++ b/test/test/05-cart-flows.js @@ -29,7 +29,7 @@ describe('cart_flows', function(){ promise(sdk.cart.get_status, {}).then(function(data){ assert(data.Header.StatusCode == 200) assert(data.Cart.Items.length == 1) - console.log(JSON.stringify(data, null, 2)) + // console.log(JSON.stringify(data, null, 2)) done() }) }) -- cgit v1.2.3-70-g09d2