Blame view

app/routes/api.js 2.49 KB
a7189c82   Geoffrey PREUD'HOMME   Membres comme con...
1
  var membres = require('../controllers/membres');
10852373   Geoffrey PREUD'HOMME   Session contrôleu...
2
  var sessions = require('../controllers/sessions');
0bda071e   Geoffrey PREUD'HOMME   Reroutage
3
4
5
6
  var express = require('express');
  
  var api = express()
  
10852373   Geoffrey PREUD'HOMME   Session contrôleu...
7
8
9
  // Sessions
  api.get('/session', function (req, res) { // Informations sur la session
      if (req.cookies && req.cookies.session) {
69695d81   Geoffrey PREUD'HOMME   Serveur: Vérifica...
10
          sessions.use(req.cookies.session, function (err) {
8bb442a5   Geoffrey PREUD'HOMME   Possibilité de se...
11
12
13
              if (err) {
                  res.send(err)
              } else {
69695d81   Geoffrey PREUD'HOMME   Serveur: Vérifica...
14
                  res.send(sessions.cur)
8bb442a5   Geoffrey PREUD'HOMME   Possibilité de se...
15
16
              }
          })
10852373   Geoffrey PREUD'HOMME   Session contrôleu...
17
18
19
20
21
22
23
          // TODO si pas bon : res.clearCookie('session')
      } else {
          res.send('missing');
      }
  });
  
  api.post('/session', function (req, res) { // Se connecter
69695d81   Geoffrey PREUD'HOMME   Serveur: Vérifica...
24
      sessions.open(req.body, function (err) {
dafb4eeb   Geoffrey PREUD'HOMME   Affichage des nom...
25
26
          if (err) {
              res.send(err)
dafb4eeb   Geoffrey PREUD'HOMME   Affichage des nom...
27
          } else {
69695d81   Geoffrey PREUD'HOMME   Serveur: Vérifica...
28
29
              res.cookie('session', sessions.cur._id);
              res.send(sessions.cur)
10852373   Geoffrey PREUD'HOMME   Session contrôleu...
30
          }
10852373   Geoffrey PREUD'HOMME   Session contrôleu...
31
32
33
34
      })
  })
  
  api.delete('/session', function (req, res) { // Se déconnecter
8bb442a5   Geoffrey PREUD'HOMME   Possibilité de se...
35
36
      if (req.cookies.session) {
          sessions.delete(req.cookies.session, function () {
10852373   Geoffrey PREUD'HOMME   Session contrôleu...
37
              res.clearCookie('session');
8bb442a5   Geoffrey PREUD'HOMME   Possibilité de se...
38
              res.end()
10852373   Geoffrey PREUD'HOMME   Session contrôleu...
39
40
41
42
43
44
          })
      } else {
          res.send('missing')
      }
  })
  
69695d81   Geoffrey PREUD'HOMME   Serveur: Vérifica...
45
46
47
48
49
50
51
52
53
54
55
56
57
58
  ifPermission = function (req, res, perm, cb) {
      sessions.use(req.cookies.session, function (err) {
          if (err) {
              res.status(403).end()
          } else {
              if (sessions.cur[perm]) {
                  cb()
              } else {
                  res.status(403).end()
              }
          }
      })
  }
  
10852373   Geoffrey PREUD'HOMME   Session contrôleu...
59
  
0bda071e   Geoffrey PREUD'HOMME   Reroutage
60
  // Membres
a7189c82   Geoffrey PREUD'HOMME   Membres comme con...
61
62
  api.get('/membres', function (req, res) { // Liste des membres
      membres.list(function (err, membres) {
0bda071e   Geoffrey PREUD'HOMME   Reroutage
63
64
65
66
67
68
          if (err)
              res.send(err);
          res.json(membres);
      });
  });
  
a7189c82   Geoffrey PREUD'HOMME   Membres comme con...
69
  api.post('/membres', function (req, res) { // Ajout d'un membre
69695d81   Geoffrey PREUD'HOMME   Serveur: Vérifica...
70
71
      ifPermission(req, res, 'canAddMembre', function () {
          membres.add(req.body, function (err, membre) {
0bda071e   Geoffrey PREUD'HOMME   Reroutage
72
73
              if (err)
                  res.send(err);
69695d81   Geoffrey PREUD'HOMME   Serveur: Vérifica...
74
75
76
77
78
              membres.list(function (err, membres) {
                  if (err)
                      res.send(err);
                  res.json(membres);
              });
0bda071e   Geoffrey PREUD'HOMME   Reroutage
79
          });
69695d81   Geoffrey PREUD'HOMME   Serveur: Vérifica...
80
      })
0bda071e   Geoffrey PREUD'HOMME   Reroutage
81
82
  });
  
a7189c82   Geoffrey PREUD'HOMME   Membres comme con...
83
  api.delete('/membres/:membre_id', function (req, res) { // Supression d'un membre
69695d81   Geoffrey PREUD'HOMME   Serveur: Vérifica...
84
85
      ifPermission(req, res, 'canDelMembre', function () {
          membres.remove(req.params.membre_id, function (err, membre) {
0bda071e   Geoffrey PREUD'HOMME   Reroutage
86
87
              if (err)
                  res.send(err);
69695d81   Geoffrey PREUD'HOMME   Serveur: Vérifica...
88
89
90
91
92
              membres.list(function (err, membres) {
                  if (err)
                      res.send(err);
                  res.json(membres);
              });
0bda071e   Geoffrey PREUD'HOMME   Reroutage
93
          });
69695d81   Geoffrey PREUD'HOMME   Serveur: Vérifica...
94
      })
0bda071e   Geoffrey PREUD'HOMME   Reroutage
95
96
97
  })
  
  module.exports = api;