/* 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 = (sdk.auth = (function () { var auth = {}; auth.appname = is_iphone ? "native-iphone-stoneisland/1.0.0" : "native-android-stoneisland/1.0.0"; auth.apikey = "U2FsdGVkX18fThqg9bF0/ZgE9Jg948hn8O9EXli4B2729nAESCQaexv//M5+7+za"; auth.device = "smartphone"; 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.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()); }, error: function () { auth.log_out(); fn && fn(false); // }, }); 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); window.FirebasePlugin && window.FirebasePlugin.setUserId(user_id); cb && cb(); }; auth.get_user = function (cb) { 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 (opt) { opt = opt || {}; if (auth.has_cart()) { opt.success && opt.success(); return; } sdk.cart.initialize({ success: function (data) { sdk.cart.set_user({ success: function () { auth.set_cart(sdk.cart.id, sdk.cart.token, function () { opt.success && opt.success(); }); }, error: function () { opt.clear_cart(); opt.error && opt.error(); }, }); }, error: function () { opt.clear_cart(); opt.error && opt.error(); }, }); }; auth.add_deferred_product_to_cart = function (opt) { opt = opt || {}; // auth.deferred_product if (!auth.deferred_product) { console.log("VV NO DEFERRED PROD"); opt.success && opt.success(); return; } console.log("ADD DEFERRED PROD"); sdk.cart.add_item({ data: auth.deferred_product, success: function () { console.log("ADDED ITEM"); app.header.increment_cart_count(); opt.success && opt.success(); }, error: function (data) { console.log("ERROR ADDING ITEM"); opt.error && opt.error(); }, }); auth.deferred_product = null; }; auth.log_out = function () { auth.clear_user(); auth.clear_cart(); }; auth.logged_in = function () { return auth.user_id && auth.user_id !== -1 && auth.user_id !== "undefined"; }; auth.has_cart = function () { return sdk.cart.id && sdk.cart.id !== -1 && sdk.cart.id !== "undefined"; }; return auth; })());