diff options
| author | Jules Laplace <jules@okfoc.us> | 2015-09-28 19:22:55 -0400 |
|---|---|---|
| committer | Jules Laplace <jules@okfoc.us> | 2015-09-28 19:22:55 -0400 |
| commit | 8bf5b7f2e3be707523d202066f0c14dcd172f46a (patch) | |
| tree | 8ea0564be09bd416ee05fc0f74e80a18d52a66f1 /StoneIsland/platforms/ios/www/js/sdk | |
| parent | ef694896c0d53f5dbd49377e5b2382368846ad65 (diff) | |
build
Diffstat (limited to 'StoneIsland/platforms/ios/www/js/sdk')
| -rw-r--r-- | StoneIsland/platforms/ios/www/js/sdk/_sdk.js (renamed from StoneIsland/platforms/ios/www/js/sdk/sdk.js) | 18 | ||||
| -rw-r--r-- | StoneIsland/platforms/ios/www/js/sdk/account.js | 54 | ||||
| -rw-r--r-- | StoneIsland/platforms/ios/www/js/sdk/address.js | 38 | ||||
| -rw-r--r-- | StoneIsland/platforms/ios/www/js/sdk/auth.js | 35 | ||||
| -rw-r--r-- | StoneIsland/platforms/ios/www/js/sdk/cart.js | 204 | ||||
| -rw-r--r-- | StoneIsland/platforms/ios/www/js/sdk/payment.js | 72 | ||||
| -rw-r--r-- | StoneIsland/platforms/ios/www/js/sdk/product.js | 25 | ||||
| -rw-r--r-- | StoneIsland/platforms/ios/www/js/sdk/shipping.js | 82 |
8 files changed, 517 insertions, 11 deletions
diff --git a/StoneIsland/platforms/ios/www/js/sdk/sdk.js b/StoneIsland/platforms/ios/www/js/sdk/_sdk.js index 893d3fae..ce68da62 100644 --- a/StoneIsland/platforms/ios/www/js/sdk/sdk.js +++ b/StoneIsland/platforms/ios/www/js/sdk/_sdk.js @@ -3,23 +3,19 @@ var sdk = (function(){ // var endpoint = "https://secure.api.yoox.biz/" var endpoint = "https://sandbox.api.yoox.biz/" - + sdk.path = function(api, path){ return endpoint + api + "/STONEISLAND_US/" + path } - sdk.fetch_collection = function(opt){ - $.ajax({ - method: "GET", - url: sdk.path("Search.API/1.2", "search.json"), - data: { format: "full", gallery: opt.gallery_id }, - success: opt.success, - }) - } - sdk.image = function(code){ return "http://cdn.yoox.biz/" + code.substr(0,2) + "/" + code + "_11_f.jpg" } + $.ajaxSetup({ + // possibly: application/json; charset=utf-8" + contentType: "application/json", + }) + return sdk -})() +})()
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/www/js/sdk/account.js b/StoneIsland/platforms/ios/www/js/sdk/account.js new file mode 100644 index 00000000..a1498e76 --- /dev/null +++ b/StoneIsland/platforms/ios/www/js/sdk/account.js @@ -0,0 +1,54 @@ +sdk.account = (function(){ + + var user_id, access_token + + // https://gist.github.com/fanfare/d18498e7fa25acbd4486 + var account = {} + account.signup = function(opt){ + $.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, + success: function(data){ + console.log(data) + user_id = data['UserAccount']['UserId'] + access_token = data['UserAccount']['AccessToken'] + + auth.set_user(user_id, access_token, name) + + opt.success(data) + }, + error: opt.error, + }) + } + + account.login = function(opt){ + $.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, + success: function(data){ + console.log(data) + auth.user_id = data['UserAccount']['UserId'] + auth.access_token = data['UserAccount']['AccessToken'] + + // why bother? + // auth.set_user(user_id, access_token, name) + + 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 new file mode 100644 index 00000000..16fc2dc4 --- /dev/null +++ b/StoneIsland/platforms/ios/www/js/sdk/address.js @@ -0,0 +1,38 @@ +sdk.address = (function(){ + var address = {} + + address.add = function(opt){ + $.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, + success: function(data){ + console.log(data) + opt.success(data) + }, + error: opt.error, + }) + } + + address.list = function(opt){ + $.ajax({ + method: "GET", + url: sdk.path("Account.API/1.5", "users/" + auth.user_id + "/addressBook.json"), + headers: { + "x-yoox-appname": auth.appname, + "x-yoox-account-token": auth.access_token, + }, + data: opt.data, + success: function(data){ + console.log(data) + opt.success(data) + }, + error: opt.error, + }) + } + +})()
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/www/js/sdk/auth.js b/StoneIsland/platforms/ios/www/js/sdk/auth.js new file mode 100644 index 00000000..911da902 --- /dev/null +++ b/StoneIsland/platforms/ios/www/js/sdk/auth.js @@ -0,0 +1,35 @@ +/* + headers: { + "x-yoox-appname": auth.appname, + "x-yoox-account-token": auth.access_token, + "x-yoox-device": auth.device, + "x-yoox-api-key": auth.apikey, + }, +*/ + +var auth = (function(){ + var auth = {} + + auth.appname = "{API-TEST}" + auth.apikey = "{API-KEY}" + auth.device = "smartphone" + + auth.access_token = "" + auth.user_id = -1 + auth.name = name + + // ios: integrate keychain api + // android: cordova.file.externalRootDirectory api + + auth.set_user = function(user_id, access_token, name){ + // persist user data + auth.user_id = user_id + auth.access_token = access_token + auth.name = name + } + auth.get_user = function(cb){ + // fetch user data + } + + 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 new file mode 100644 index 00000000..3c16feae --- /dev/null +++ b/StoneIsland/platforms/ios/www/js/sdk/cart.js @@ -0,0 +1,204 @@ +sdk.cart = (function(){ + var cart = {} + + cart.id = "" + cart.token = "" + + // https://gist.github.com/fanfare/9a50c524aea417d0bf3e + cart.initialize = function(opt){ + $.ajax({ + method: "POST", + url: sdk.path("Cart.API/1.6", "carts.json"), + headers: { + "x-yoox-appname": auth.appname, + "x-yoox-device": auth.device, + }, + data: opt.data, + success: function(data){ + console.log(data) + cart.id = data["CartSession"]["CartId"] + cart.token = data["CartSession"]["CartToken"] + opt.success(data) + }, + error: opt.error, + }) + } + + cart.set_user = function(opt){ + $.ajax({ + method: "PUT", + url: sdk.path("Cart.API/1.6", "carts.json"), + headers: { + "x-yoox-appname": auth.appname, + "x-yoox-cart-token": cart.token, + }, + data: { + "UserId": auth.user_id, + "UserToken": auth.access_token, + }, + success: function(data){ + console.log(data) + opt.success(data) + }, + error: opt.error, + }) + } + + // Code10, Size, Section + cart.add_item = function(opt){ + $.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, + success: function(data){ + console.log(data) + opt.success(data) + }, + error: opt.error, + }) + } + + cart.delete_item = function(opt){ + $.ajax({ + method: "DELETE", + url: sdk.path("Cart.API/1.6", "carts/" + cart.id + + "/items/" + opt.code10 + + "/" + opt.size + ".json"), + headers: { + "x-yoox-appname": auth.appname, + "x-yoox-cart-token": cart.token, + }, + success: function(data){ + console.log(data) + opt.success(data) + }, + error: opt.error, + }) + } + + cart.get_status = function(opt){ + $.ajax({ + method: "GET", + url: sdk.path("Cart.API/1.6", "carts/" + cart.id), + 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) + }, + error: opt.error, + }) + } + + // NOTE: data might be wrapped in a Receiver object + cart.set_shipping_address = function(opt){ + $.ajax({ + method: "PUT", + url: sdk.path("Cart.API/1.6", "receiver.json"), + headers: { + "x-yoox-appname": auth.appname, + "x-yoox-cart-token": cart.token, + }, + data: opt.data, + success: function(data){ + console.log(data) + opt.success(data) + }, + error: opt.error, + }) + } + + // NB: Payment type may simply be 1 (credit card) + cart.set_payment_type = function(opt){ + $.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, + success: function(data){ + console.log(data) + opt.success(data) + }, + error: opt.error, + }) + } + + // use with full CC data if not storing it in wallet + cart.set_credit_card = function(opt){ + $.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, + success: function(data){ + console.log(data) + opt.success(data) + }, + error: opt.error, + }) + } + + // use with a stored GUID + // 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({ + 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 + "Guid": opt.guid, + "UserId": auth.user_id, + "AccessToken": auth.access_token, + "Cvv": opt.cvv, + "Issue": opt.issue, + }, + success: function(data){ + console.log(data) + opt.success(data) + }, + error: opt.error, + }) + } + + cart.finalize = function(opt){ + $.ajax({ + method: "PUT", + url: sdk.path("Cart.API/1.6", "carts/" + cart.id + "/secureFinalizer.json"), + headers: { + "x-yoox-appname": auth.appname, + "x-yoox-cart-token": cart.token, + "x-yoox-device": auth.device, + }, + data: opt.data, + success: function(data){ + console.log(data) + // order number is: + // "Info": "2905Y07FA13020" + opt.success(data) + }, + error: opt.error, + }) + } + return cart +})()
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/www/js/sdk/payment.js b/StoneIsland/platforms/ios/www/js/sdk/payment.js new file mode 100644 index 00000000..048cde4b --- /dev/null +++ b/StoneIsland/platforms/ios/www/js/sdk/payment.js @@ -0,0 +1,72 @@ +sdk.payment = (function(){ + var payment = {} + + payment.list_credit_cards = function(opt){ + $.ajax({ + method: "GET", + 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, + success: function(data){ + console.log(data) + opt.success(data) + }, + error: opt.error, + }) + } + + payment.add_credit_card = function(opt){ + $.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, + success: function(data){ + console.log(data) + opt.success(data) + }, + error: opt.error, + }) + } + + payment.delete_credit_card = function(opt){ + $.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, + }, + success: function(data){ + console.log(data) + opt.success(data) + }, + error: opt.error, + }) + } + + payment.get_payment_types = function(opt){ + $.ajax({ + method: "GET", + url: sdk.path("Cart.API/1.6", "availablePaymentTypes.json"), + headers: { + "x-yoox-appname": auth.appname, + "x-yoox-device": auth.device, + }, + data: opt.data, + success: function(data){ + console.log(data) + opt.success(data) + }, + error: opt.error, + }) + } + + return payment +})()
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/www/js/sdk/product.js b/StoneIsland/platforms/ios/www/js/sdk/product.js new file mode 100644 index 00000000..c904eb32 --- /dev/null +++ b/StoneIsland/platforms/ios/www/js/sdk/product.js @@ -0,0 +1,25 @@ +sdk.product = (function(){ + var product = {} + + product.fetch_collection = function(opt){ + $.ajax({ + method: "GET", + url: sdk.path("Search.API/1.2", "search.json"), + data: { format: "full", gallery: opt.gallery_id }, + success: opt.success, + error: opt.error, + }) + } + + // https://gist.github.com/fanfare/2d25d1b36944188948ff + product.item = function(opt){ + $.ajax({ + method: "GET", + url: sdk.path("Item.API/1.0", "item/" + data.code + ".json"), + 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 new file mode 100644 index 00000000..400d3199 --- /dev/null +++ b/StoneIsland/platforms/ios/www/js/sdk/shipping.js @@ -0,0 +1,82 @@ +sdk.shipping = (function(){ + var shipping = {} + + // https://gist.github.com/fanfare/edb524128461b573d833 + + // BOX TYPE + + shipping.get_box_types = function(opt){ + $.ajax({ + method: "GET", + url: sdk.path("Cart.API/1.6", "carts/" + cart.id + "/availableBoxTypes.json"), + headers: { + "x-yoox-appname": auth.appname, + "x-yoox-cart-token": cart.token, + }, + success: function(data){ + console.log(data) + opt.success(data['BoxTypes']['Types']) + }, + error: opt.error, + }) + } + + shipping.set_box_type = function(opt){ + $.ajax({ + method: "PUT", + url: sdk.path("Cart.API/1.6", "carts/" + cart.id + "/boxType.json"), + headers: { + "x-yoox-appname": auth.appname, + "x-yoox-cart-token": cart.token, + }, + data: { + "Type": opt.type, + }, + success: function(data){ + console.log(data) + opt.success(data) + }, + error: opt.error, + }) + } + + + // DELIVERY TYPES + + shipping.get_delivery_types = function(opt){ + $.ajax({ + method: "GET", + url: sdk.path("Cart.API/1.6", "carts/" + cart.id + "/availableDeliveryTypes.json"), + headers: { + "x-yoox-appname": auth.appname, + "x-yoox-cart-token": cart.token, + }, + success: function(data){ + console.log(data) + opt.success(data['DeliveryTypes']['Types']) + }, + error: opt.error, + }) + } + + shipping.set_delivery_type = function(opt){ + $.ajax({ + method: "PUT", + url: sdk.path("Cart.API/1.6", "carts/" + cart.id + "/availableBoxTypes.json"), + headers: { + "x-yoox-appname": auth.appname, + "x-yoox-cart-token": cart.token, + }, + data: { + "Id": opt.id, + }, + success: function(data){ + console.log(data) + opt.success(data) + }, + error: opt.error, + }) + } + + return shipping +})()
\ No newline at end of file |
