summaryrefslogtreecommitdiff
path: root/StoneIsland/www/js/sdk/auth.js
blob: 87ce60ead0ea0aa3756acee9e0ebedf624f3b99e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
/*
      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() )
          }
        })
        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){
    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) {
        console.log("VV NO DEF PROD")
      cb && cb()
      return
    }
    sdk.cart.add_item({
      data: auth.deferred_product,
      success: function(){
        console.log("ADDED ITEM")
        cb && cb()
      },
      error: function(data){
        console.log("ERROR ADDING ITEM", data)
        cb && cb()
      },
    })
    auth.deferred_product = null
    app.header.increment_cart_count()
  }
  
  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
})()