diff options
| author | Jules Laplace <jules@okfoc.us> | 2015-11-24 20:57:41 -0500 |
|---|---|---|
| committer | Jules Laplace <jules@okfoc.us> | 2015-11-24 20:57:41 -0500 |
| commit | 612561818f907f0f9988247c82ec158ba4494986 (patch) | |
| tree | 8bbc773dad7a6364cbdb8aed2ef4cab04854f49a /StoneIsland/platforms/ios/www/js/sdk | |
| parent | d548a7d02ce6349ca9a820b6824e4374b759812b (diff) | |
build
Diffstat (limited to 'StoneIsland/platforms/ios/www/js/sdk')
| -rw-r--r-- | StoneIsland/platforms/ios/www/js/sdk/_sdk.js | 10 | ||||
| -rw-r--r-- | StoneIsland/platforms/ios/www/js/sdk/account.js | 66 | ||||
| -rw-r--r-- | StoneIsland/platforms/ios/www/js/sdk/address.js | 6 | ||||
| -rw-r--r-- | StoneIsland/platforms/ios/www/js/sdk/auth.js | 104 | ||||
| -rw-r--r-- | StoneIsland/platforms/ios/www/js/sdk/cart.js | 80 | ||||
| -rw-r--r-- | StoneIsland/platforms/ios/www/js/sdk/payment.js | 30 | ||||
| -rw-r--r-- | StoneIsland/platforms/ios/www/js/sdk/product.js | 18 | ||||
| -rw-r--r-- | StoneIsland/platforms/ios/www/js/sdk/shipping.js | 54 |
8 files changed, 268 insertions, 100 deletions
diff --git a/StoneIsland/platforms/ios/www/js/sdk/_sdk.js b/StoneIsland/platforms/ios/www/js/sdk/_sdk.js index 31fd96ca..27773310 100644 --- a/StoneIsland/platforms/ios/www/js/sdk/_sdk.js +++ b/StoneIsland/platforms/ios/www/js/sdk/_sdk.js @@ -1,11 +1,13 @@ var sdk = (function(){ var sdk = {} - + + sdk.env = "development" + var endpoint = "https://secure.api.yoox.biz/" // var endpoint = "http://api.yoox.biz/" sdk.init = function(opt){ - switch (opt.env) { + switch (sdk.env = opt.env || "development") { case 'test': endpoint = "http://lvh.me:9090/" break @@ -23,8 +25,8 @@ var sdk = (function(){ return endpoint + api + "/STONEISLAND_US/" + path } - sdk.image = function(code){ - return "http://cdn.yoox.biz/" + code.substr(0,2) + "/" + code + "_11_f.jpg" + sdk.image = function(code, size){ + return "http://cdn.yoox.biz/" + code.substr(0,2) + "/" + code.substr(0,8) + "_" + size + ".jpg" } $.ajaxSetup({ diff --git a/StoneIsland/platforms/ios/www/js/sdk/account.js b/StoneIsland/platforms/ios/www/js/sdk/account.js index 3dfe2cfe..fe5f03cd 100644 --- a/StoneIsland/platforms/ios/www/js/sdk/account.js +++ b/StoneIsland/platforms/ios/www/js/sdk/account.js @@ -5,14 +5,14 @@ sdk.account = (function(){ // https://gist.github.com/fanfare/d18498e7fa25acbd4486 var account = {} account.signup = function(opt){ - $.ajax({ + return $.ajax({ method: "POST", url: sdk.path("Account.API/1.5", "users.json"), headers: { "x-yoox-appname": auth.appname, "x-yoox-api-key": auth.apikey, }, - data: opt.data, + data: JSON.stringify( opt.data ), success: function(data){ user_id = data['UserAccount']['UserId'] access_token = data['UserAccount']['AccessToken'] @@ -26,21 +26,20 @@ sdk.account = (function(){ } account.login = function(opt){ - $.ajax({ + return $.ajax({ method: "POST", url: sdk.path("Account.API/1.5", "authfull.json"), headers: { "x-yoox-appname": auth.appname, "x-yoox-account-token": auth.access_token, }, - data: opt.data, + data: JSON.stringify( opt.data ), success: function(data){ - // console.log(data) - // auth.user_id = data['UserFull']['UserId'] - // auth.access_token = data['UserFull']['AccessToken'] + auth.user = data['UserFull'] + user_id = data['UserFull']['idUser'] + access_token = data['UserFull']['AccessToken'] - // why bother? - // auth.set_user(user_id, access_token, name) + auth.set_user(user_id, access_token) opt.success(data) }, @@ -48,6 +47,55 @@ sdk.account = (function(){ }) } + account.checkin = function(opt){ + return $.ajax({ + method: "GET", + url: sdk.path("Account.API/1.5", "users/" + auth.user_id + ".json"), + headers: { + "x-yoox-appname": auth.appname, + "x-yoox-account-token": auth.access_token, + }, + data: "{}", + success: function(data){ + auth.user = data.User + opt.success(data) + }, + error: opt.error, + }) + } + + account.update = function(opt){ + return $.ajax({ + method: "PUT", + url: sdk.path("Account.API/1.5", "users/" + auth.user_id + ".json"), + headers: { + "x-yoox-appname": auth.appname, + "x-yoox-account-token": auth.access_token, + }, + data: JSON.stringify( opt.data ), + success: function(data){ + opt.success(data) + }, + error: opt.error, + }) + } + + account.update_mail_and_password = function(opt){ + return $.ajax({ + method: "PUT", + url: sdk.path("Account.API/1.5", "auth/" + auth.user_id + ".json"), + headers: { + "x-yoox-appname": auth.appname, + "x-yoox-account-token": auth.access_token, + }, + data: JSON.stringify( opt.data ), + success: function(data){ + opt.success(data) + }, + error: opt.error, + }) + } + return account })() diff --git a/StoneIsland/platforms/ios/www/js/sdk/address.js b/StoneIsland/platforms/ios/www/js/sdk/address.js index 144589d0..f4e36376 100644 --- a/StoneIsland/platforms/ios/www/js/sdk/address.js +++ b/StoneIsland/platforms/ios/www/js/sdk/address.js @@ -2,14 +2,14 @@ sdk.address = (function(){ var address = {} address.add = function(opt){ - $.ajax({ + return $.ajax({ method: "POST", url: sdk.path("Account.API/1.5", "users/" + auth.user_id + "/addressBook/item.json"), headers: { "x-yoox-appname": auth.appname, "x-yoox-account-token": auth.access_token, }, - data: opt.data, + data: JSON.stringify( opt.data ), success: function(data){ // console.log(data) opt.success(data) @@ -19,7 +19,7 @@ sdk.address = (function(){ } address.list = function(opt){ - $.ajax({ + return $.ajax({ method: "GET", url: sdk.path("Account.API/1.5", "users/" + auth.user_id + "/addressBook.json"), headers: { diff --git a/StoneIsland/platforms/ios/www/js/sdk/auth.js b/StoneIsland/platforms/ios/www/js/sdk/auth.js index cea0054c..8a72dd46 100644 --- a/StoneIsland/platforms/ios/www/js/sdk/auth.js +++ b/StoneIsland/platforms/ios/www/js/sdk/auth.js @@ -7,7 +7,7 @@ }, */ -var auth = (function(){ +var auth = sdk.auth = (function(){ var auth = {} auth.appname = is_iphone ? "native-iphone-stoneisland/1.0.0" : "native-android-stoneisland/1.0.0" @@ -16,18 +16,110 @@ var auth = (function(){ auth.access_token = "" auth.user_id = -1 + + auth.next_view = null + auth.deferred_product = null // ios: integrate keychain api // android: cordova.file.externalRootDirectory api - auth.set_user = function(user_id, access_token){ - // persist user data - auth.user_id = user_id + auth.init = function(fn){ + console.log("AUTH INIT") + auth.get_user(function(){ + if (auth.logged_in()) { + sdk.account.checkin({ + success: function(data){ + fn && fn( auth.logged_in() ) + } + }) + auth.get_cart() + } + else { + fn && fn( auth.logged_in() ) + } + }) + } + + auth.set_user = function(user_id, access_token, cb){ auth.access_token = access_token + auth.user_id = user_id + + localStorage.setItem("yoox.access_token", access_token) + localStorage.setItem("yoox.user_id", user_id) + cb && cb() } auth.get_user = function(cb){ - // fetch user data + auth.access_token = localStorage.getItem("yoox.access_token") || "" + auth.user_id = localStorage.getItem("yoox.user_id") || -1 + cb && cb() + } + auth.clear_user = function(cb){ + auth.access_token = "" + auth.user_id = -1 + localStorage.removeItem("yoox.access_token") + localStorage.removeItem("yoox.user_id") + cb && cb() + } + + auth.set_cart = function(cart_id, cart_token, cb){ + localStorage.setItem("yoox.cart_token", cart_token) + localStorage.setItem("yoox.cart_id", cart_id) + cb && cb() + } + auth.get_cart = function(cb){ + sdk.cart.token = localStorage.getItem("yoox.cart_token") || "" + sdk.cart.id = localStorage.getItem("yoox.cart_id") || -1 + cb && cb() + } + auth.clear_cart = function(cb){ + sdk.cart.token = "" + sdk.cart.id = -1 + localStorage.removeItem("yoox.cart_token") + localStorage.removeItem("yoox.cart_id") + cb && cb() + } + auth.create_cart = function(cb){ + if (auth.has_cart()) { return cb() } + sdk.cart.initialize({ + success: function(data){ + sdk.cart.set_user({ + success: function(){ + auth.set_cart(sdk.cart.id, sdk.cart.token, function(){ + cb && cb() + }) + } + }) + } + }) + } + auth.add_deferred_product_to_cart = function(cb){ + // auth.deferred_product + if (! auth.deferred_product) { + cb && cb() + return + } + sdk.cart.add_item({ + data: auth.deferred_product, + success: function(){ + console.log("ADDED") + cb && cb() + } + }) + auth.deferred_product = null + app.header.increment_cart_count() + } + + auth.log_out = function(){ + auth.clear_user() + auth.clear_cart() + auth.view_logged_out() + } + auth.logged_in = function(){ + return (auth.user_id !== -1) && (auth.user_id !== "undefined") + } + auth.has_cart = function(){ + return (sdk.cart.id !== -1) && (sdk.cart.id !== "undefined") } return auth -})() +})()
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/www/js/sdk/cart.js b/StoneIsland/platforms/ios/www/js/sdk/cart.js index 9f9d81f1..bbd03299 100644 --- a/StoneIsland/platforms/ios/www/js/sdk/cart.js +++ b/StoneIsland/platforms/ios/www/js/sdk/cart.js @@ -6,18 +6,19 @@ sdk.cart = (function(){ // https://gist.github.com/fanfare/9a50c524aea417d0bf3e cart.initialize = function(opt){ - $.ajax({ + return $.ajax({ method: "POST", url: sdk.path("Cart.API/1.6", "carts.json"), headers: { "x-yoox-appname": auth.appname, "x-yoox-device": auth.device, }, + data: "{}", // data: opt.data, success: function(data){ - console.log(data) cart.id = data["CartSession"]["CartId"] cart.token = data["CartSession"]["CartToken"] + auth.set_cart( cart.id, cart.token ) opt.success(data) }, error: opt.error, @@ -25,19 +26,18 @@ sdk.cart = (function(){ } cart.set_user = function(opt){ - $.ajax({ + return $.ajax({ method: "PUT", - url: sdk.path("Cart.API/1.6", "user.json"), + url: sdk.path("Cart.API/1.6", "carts/" + cart.id + "/user.json"), headers: { "x-yoox-appname": auth.appname, "x-yoox-cart-token": cart.token, }, - data: { + data: JSON.stringify({ "UserId": auth.user_id, "UserToken": auth.access_token, - }, + }), success: function(data){ - console.log(data) opt.success(data) }, error: opt.error, @@ -46,16 +46,16 @@ sdk.cart = (function(){ // Code10, Size, Section cart.add_item = function(opt){ - $.ajax({ + return $.ajax({ method: "POST", url: sdk.path("Cart.API/1.6", "carts/" + cart.id + "/items.json"), headers: { "x-yoox-appname": auth.appname, "x-yoox-cart-token": cart.token, }, - data: opt.data, + data: JSON.stringify( opt.data ), success: function(data){ - console.log(data) + // console.log(data) opt.success(data) }, error: opt.error, @@ -63,17 +63,18 @@ sdk.cart = (function(){ } cart.delete_item = function(opt){ - $.ajax({ + return $.ajax({ method: "DELETE", url: sdk.path("Cart.API/1.6", "carts/" + cart.id + - "/items/" + opt.code10 + - "/" + opt.size + ".json"), + "/items/" + opt.data.Code10 + + "/" + opt.data.Size + ".json"), headers: { "x-yoox-appname": auth.appname, "x-yoox-cart-token": cart.token, }, + data: "{}", success: function(data){ - console.log(data) + // console.log(data) opt.success(data) }, error: opt.error, @@ -81,21 +82,24 @@ sdk.cart = (function(){ } cart.get_status = function(opt){ - $.ajax({ + if (! cart.id) { + return opt.error({ error: "no cart" }) + } + return $.ajax({ method: "GET", - url: sdk.path("Cart.API/1.6", "carts/" + cart.id), + url: sdk.path("Cart.API/1.6", "carts/" + cart.id + ".json"), headers: { "x-yoox-appname": auth.appname, "x-yoox-cart-token": cart.token, "x-yoox-device": auth.device, }, - data: { - "UserId": auth.user_id, - "UserToken": auth.access_token, - }, success: function(data){ - console.log(data) - opt.success(data) + if (data['Error']) { + opt.error && opt.error(data) + } + else { + opt.success(data) + } }, error: opt.error, }) @@ -103,16 +107,16 @@ sdk.cart = (function(){ // NOTE: data might be wrapped in a Receiver object cart.set_shipping_address = function(opt){ - $.ajax({ + return $.ajax({ method: "PUT", - url: sdk.path("Cart.API/1.6", "receiver.json"), + url: sdk.path("Cart.API/1.6", "carts/" + cart.id + "/receiver.json"), headers: { "x-yoox-appname": auth.appname, "x-yoox-cart-token": cart.token, }, - data: opt.data, + data: JSON.stringify(opt.data), success: function(data){ - console.log(data) + // console.log(data) opt.success(data) }, error: opt.error, @@ -121,16 +125,16 @@ sdk.cart = (function(){ // NB: Payment type may simply be 1 (credit card) cart.set_payment_type = function(opt){ - $.ajax({ + return $.ajax({ method: "PUT", url: sdk.path("Cart.API/1.6", "carts/" + cart.id + "/paymentType.json"), headers: { "x-yoox-appname": auth.appname, "x-yoox-cart-token": cart.token, }, - data: opt.data, + data: JSON.stringify( opt.data ), success: function(data){ - console.log(data) + // console.log(data) opt.success(data) }, error: opt.error, @@ -139,16 +143,16 @@ sdk.cart = (function(){ // use with full CC data if not storing it in wallet cart.set_credit_card = function(opt){ - $.ajax({ + return $.ajax({ method: "PUT", url: sdk.path("Cart.API/1.6", "carts/" + cart.id + "/creditCard.json"), headers: { "x-yoox-appname": auth.appname, "x-yoox-cart-token": cart.token, }, - data: opt.data, + data: JSON.stringify( opt.data ), success: function(data){ - console.log(data) + // console.log(data) opt.success(data) }, error: opt.error, @@ -159,22 +163,22 @@ 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){ - $.ajax({ + return $.ajax({ method: "PUT", url: sdk.path("Cart.API/1.6", "carts/" + cart.id + "/userCreditCard.json"), headers: { "x-yoox-appname": auth.appname, "x-yoox-cart-token": cart.token, }, - data: { // NB may be wrapped in UserCreditCard object + 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, - }, + }), success: function(data){ - console.log(data) + // console.log(data) opt.success(data) }, error: opt.error, @@ -182,7 +186,7 @@ sdk.cart = (function(){ } cart.finalize = function(opt){ - $.ajax({ + return $.ajax({ method: "PUT", url: sdk.path("Cart.API/1.6", "carts/" + cart.id + "/secureFinalizer.json"), headers: { @@ -190,7 +194,7 @@ sdk.cart = (function(){ "x-yoox-cart-token": cart.token, "x-yoox-device": auth.device, }, - data: opt.data, + data: JSON.stringify( opt.data ), success: function(data){ console.log(data) // order number is: diff --git a/StoneIsland/platforms/ios/www/js/sdk/payment.js b/StoneIsland/platforms/ios/www/js/sdk/payment.js index 048cde4b..d0951017 100644 --- a/StoneIsland/platforms/ios/www/js/sdk/payment.js +++ b/StoneIsland/platforms/ios/www/js/sdk/payment.js @@ -1,26 +1,28 @@ sdk.payment = (function(){ var payment = {} - payment.list_credit_cards = function(opt){ - $.ajax({ - method: "GET", + payment.add_credit_card = function(opt){ + return $.ajax({ + method: "POST", url: sdk.path("Account.API/1.5", "users/" + auth.user_id + "/cards.json"), headers: { "x-yoox-appname": auth.appname, "x-yoox-account-token": auth.access_token, }, - data: opt.data, + data: JSON.stringify( opt.data ), success: function(data){ - console.log(data) + // console.log(data) opt.success(data) }, error: opt.error, }) } - - payment.add_credit_card = function(opt){ - $.ajax({ - method: "POST", + + // LISTING A CREDIT CARD ONCE A CARD HAS BEEN ADDED PRODUCES ERROR + + payment.list_credit_cards = function(opt){ + return $.ajax({ + method: "GET", url: sdk.path("Account.API/1.5", "users/" + auth.user_id + "/cards.json"), headers: { "x-yoox-appname": auth.appname, @@ -28,6 +30,7 @@ sdk.payment = (function(){ }, data: opt.data, success: function(data){ + console.log("listing credit cards") console.log(data) opt.success(data) }, @@ -36,15 +39,16 @@ sdk.payment = (function(){ } payment.delete_credit_card = function(opt){ - $.ajax({ + return $.ajax({ method: "DELETE", url: sdk.path("Account.API/1.5", "users/" + auth.user_id + "/cards/" + opt.guid + ".json"), headers: { "x-yoox-appname": auth.appname, "x-yoox-account-token": auth.access_token, }, + data: "{}", success: function(data){ - console.log(data) + // console.log(data) opt.success(data) }, error: opt.error, @@ -52,7 +56,7 @@ sdk.payment = (function(){ } payment.get_payment_types = function(opt){ - $.ajax({ + return $.ajax({ method: "GET", url: sdk.path("Cart.API/1.6", "availablePaymentTypes.json"), headers: { @@ -61,7 +65,7 @@ sdk.payment = (function(){ }, data: opt.data, success: function(data){ - console.log(data) + // console.log(data) opt.success(data) }, error: opt.error, diff --git a/StoneIsland/platforms/ios/www/js/sdk/product.js b/StoneIsland/platforms/ios/www/js/sdk/product.js index a2ba30a1..55f1940a 100644 --- a/StoneIsland/platforms/ios/www/js/sdk/product.js +++ b/StoneIsland/platforms/ios/www/js/sdk/product.js @@ -1,11 +1,13 @@ sdk.product = (function(){ var product = {} + + var default_gallery = 31617 product.collection = function(opt){ - $.ajax({ + return $.ajax({ method: "GET", url: sdk.path("Search.API/1.2", "search.json"), - data: { format: "full", gallery: opt.gallery_id }, + data: { format: "full", gallery: opt.gallery_id || default_gallery, productsPerPage: 100 }, success: opt.success, error: opt.error, }) @@ -13,7 +15,7 @@ sdk.product = (function(){ // https://gist.github.com/fanfare/2d25d1b36944188948ff product.item = function(opt){ - $.ajax({ + return $.ajax({ method: "GET", url: sdk.path("Item.API/1.0", "item/" + opt.code + ".json"), success: opt.success, @@ -21,5 +23,15 @@ sdk.product = (function(){ }) } + product.search = function(opt){ + return $.ajax({ + method: "GET", + url: sdk.path("Search.API/1.2", "search.json"), + data: { format: "full", gallery: opt.gallery_id || default_gallery, textSearch: opt.query, productsPerPage: 100 }, + success: opt.success, + error: opt.error, + }) + } + return product })()
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/www/js/sdk/shipping.js b/StoneIsland/platforms/ios/www/js/sdk/shipping.js index 400d3199..a4615531 100644 --- a/StoneIsland/platforms/ios/www/js/sdk/shipping.js +++ b/StoneIsland/platforms/ios/www/js/sdk/shipping.js @@ -1,39 +1,40 @@ -sdk.shipping = (function(){ +sdk.shipping = (function() { var shipping = {} + // https://gist.github.com/fanfare/edb524128461b573d833 // BOX TYPE shipping.get_box_types = function(opt){ - $.ajax({ + return $.ajax({ method: "GET", - url: sdk.path("Cart.API/1.6", "carts/" + cart.id + "/availableBoxTypes.json"), + url: sdk.path("Cart.API/1.6", "carts/" + sdk.cart.id + "/availableBoxTypes.json"), headers: { "x-yoox-appname": auth.appname, - "x-yoox-cart-token": cart.token, + "x-yoox-cart-token": sdk.cart.token, }, success: function(data){ - console.log(data) - opt.success(data['BoxTypes']['Types']) + // console.log(data) + opt.success(data) }, error: opt.error, }) } shipping.set_box_type = function(opt){ - $.ajax({ + return $.ajax({ method: "PUT", - url: sdk.path("Cart.API/1.6", "carts/" + cart.id + "/boxType.json"), + url: sdk.path("Cart.API/1.6", "carts/" + sdk.cart.id + "/boxType.json"), headers: { "x-yoox-appname": auth.appname, - "x-yoox-cart-token": cart.token, + "x-yoox-cart-token": sdk.cart.token, }, - data: { + data: JSON.stringify({ "Type": opt.type, - }, + }), success: function(data){ - console.log(data) + // console.log(data) opt.success(data) }, error: opt.error, @@ -42,36 +43,41 @@ sdk.shipping = (function(){ // DELIVERY TYPES + + // The response is different than described in the API reference.. + // https://gist.github.com/fanfare/15dfbca6a16ae6bed503 shipping.get_delivery_types = function(opt){ - $.ajax({ + return $.ajax({ method: "GET", - url: sdk.path("Cart.API/1.6", "carts/" + cart.id + "/availableDeliveryTypes.json"), + url: sdk.path("Cart.API/1.6", "carts/" + sdk.cart.id + "/availableDeliveryTypes.json"), headers: { "x-yoox-appname": auth.appname, - "x-yoox-cart-token": cart.token, + "x-yoox-cart-token": sdk.cart.token, }, success: function(data){ - console.log(data) - opt.success(data['DeliveryTypes']['Types']) + opt.success(data) }, error: opt.error, }) } shipping.set_delivery_type = function(opt){ - $.ajax({ + return $.ajax({ method: "PUT", - url: sdk.path("Cart.API/1.6", "carts/" + cart.id + "/availableBoxTypes.json"), + url: sdk.path("Cart.API/1.6", "carts/" + sdk.cart.id + "/deliveryType.json"), headers: { "x-yoox-appname": auth.appname, - "x-yoox-cart-token": cart.token, + "x-yoox-cart-token": sdk.cart.token, }, - data: { + // temporarily commented out + /* + data: JSON.stringify({ "Id": opt.id, - }, + }), + */ success: function(data){ - console.log(data) + //console.log(data) opt.success(data) }, error: opt.error, @@ -79,4 +85,4 @@ sdk.shipping = (function(){ } return shipping -})()
\ No newline at end of file +})() |
