Blame view

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