Blame view

public/js/services/SessionServ.js 2.23 KB
8bb442a5   Geoffrey PREUD'HOMME   Possibilité de se...
1
2
3
  angular.module('SessionsServ', []).service('SessionService', ['$http',
      function ($http) {
          a = {
69695d81   Geoffrey PREUD'HOMME   Serveur: Vérifica...
4
              cur: false,
8bb442a5   Geoffrey PREUD'HOMME   Possibilité de se...
5
6
7
8
9
10
11
12
13
14
15
              status: 0,
              changeHandlers: [],
              onChange: function (fun) {
                  this.changeHandlers.push(fun)
              },
              triggerChange: function () {
                  for (fun in this.changeHandlers) {
                      this.changeHandlers[fun]()
                  }
              },
              updateSessionInfos: function (data) {
69695d81   Geoffrey PREUD'HOMME   Serveur: Vérifica...
16
                  console.log("Connection:", data)
8bb442a5   Geoffrey PREUD'HOMME   Possibilité de se...
17
                  if (typeof data === 'object') {
69695d81   Geoffrey PREUD'HOMME   Serveur: Vérifica...
18
                      this.cur = data
8bb442a5   Geoffrey PREUD'HOMME   Possibilité de se...
19
                  } else {
69695d81   Geoffrey PREUD'HOMME   Serveur: Vérifica...
20
                      this.cur = false
8bb442a5   Geoffrey PREUD'HOMME   Possibilité de se...
21
22
23
24
                  }
                  this.triggerChange()
              },
              get: function (cb) { // Fetch infos if needed
8bb442a5   Geoffrey PREUD'HOMME   Possibilité de se...
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
                  if (status == 0) {
                      this.status = 1 // Fetching
                      _this = this
                      // TODO Verify if cookies to prevent uneeded request
                      $http.get('/api/session').success(function (body) {
                          _this.updateSessionInfos(body)
                          if (cb) {
                              if (this.logged) {
                                  cb(null)
                              } else {
                                  cb(body)
                              }
                          }
                      })
                  } else {
69695d81   Geoffrey PREUD'HOMME   Serveur: Vérifica...
40
                      console.warn("Unnecessary get() call")
8bb442a5   Geoffrey PREUD'HOMME   Possibilité de se...
41
42
43
                  }
              },
              connect: function (login, pass, cb) {
8bb442a5   Geoffrey PREUD'HOMME   Possibilité de se...
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
                  _this = this
                  $http.post('/api/session', {
                      login: login,
                      pass: pass
                  }).success(function (body) {
                      _this.updateSessionInfos(body)
                      if (cb) {
                          if (this.logged) {
                              cb(null)
                          } else {
                              cb(body)
                          }
                      }
                  })
              },
              disconnect: function () {
69695d81   Geoffrey PREUD'HOMME   Serveur: Vérifica...
60
                  this.updateSessionInfos(false)
8bb442a5   Geoffrey PREUD'HOMME   Possibilité de se...
61
                  $http.delete('/api/session')
8bb442a5   Geoffrey PREUD'HOMME   Possibilité de se...
62
              }
9a023783   Geoffrey PREUD'HOMME   [WIP] Session mis...
63
          }
8bb442a5   Geoffrey PREUD'HOMME   Possibilité de se...
64
65
          a.get()
          return a
9a023783   Geoffrey PREUD'HOMME   [WIP] Session mis...
66
      }
8bb442a5   Geoffrey PREUD'HOMME   Possibilité de se...
67
  ])