Blame view

app/routes/ApiRtes.js 2.52 KB
7a1fe62d   Geoffrey PREUD'HOMME   Consistence des noms
1
2
3
  var MembresServ = require('../services/MembresServ');
  var SessionsServ = require('../services/SessionsServ');
  var DecryptServ = require('../services/DecryptServ');
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
      if (req.cookies && req.cookies.session) {
7a1fe62d   Geoffrey PREUD'HOMME   Consistence des noms
11
          SessionsServ.use(req.cookies.session, function (err) {
2f593328   Geoffrey PREUD'HOMME   Linting
12
13
14
              if (err) {
                  res.send(err);
              } else {
7a1fe62d   Geoffrey PREUD'HOMME   Consistence des noms
15
                  res.send(SessionsServ.cur);
2f593328   Geoffrey PREUD'HOMME   Linting
16
17
18
19
20
21
              }
          });
          // 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
7a1fe62d   Geoffrey PREUD'HOMME   Consistence des noms
25
26
      DecryptServ.decrypt(req.body[0], function (data) {
          SessionsServ.open(JSON.parse(data), function (err) {
2f593328   Geoffrey PREUD'HOMME   Linting
27
28
29
              if (err) {
                  res.send(err);
              } else {
7a1fe62d   Geoffrey PREUD'HOMME   Consistence des noms
30
31
                  res.cookie('session', SessionsServ.cur._id);
                  res.send(SessionsServ.cur);
2f593328   Geoffrey PREUD'HOMME   Linting
32
33
              }
          });
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
      if (req.cookies.session) {
7a1fe62d   Geoffrey PREUD'HOMME   Consistence des noms
39
          SessionsServ.delete(req.cookies.session, function () {
2f593328   Geoffrey PREUD'HOMME   Linting
40
41
42
43
44
45
              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) {
7a1fe62d   Geoffrey PREUD'HOMME   Consistence des noms
49
      SessionsServ.use(req.cookies.session, function (err) {
2f593328   Geoffrey PREUD'HOMME   Linting
50
51
52
          if (err) {
              res.status(403).end();
          } else {
7a1fe62d   Geoffrey PREUD'HOMME   Consistence des noms
53
              if (SessionsServ.cur[perm]) {
2f593328   Geoffrey PREUD'HOMME   Linting
54
55
56
57
58
59
                  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
7a1fe62d   Geoffrey PREUD'HOMME   Consistence des noms
65
      MembresServ.list(function (err, membres) {
2f593328   Geoffrey PREUD'HOMME   Linting
66
67
          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
      ifPermission(req, res, 'canAddMembre', function () {
7a1fe62d   Geoffrey PREUD'HOMME   Consistence des noms
75
          MembresServ.add(req.body, function (err, membre) {
2f593328   Geoffrey PREUD'HOMME   Linting
76
77
              if (err)
                  res.send(err);
f661af15   Geoffrey PREUD'HOMME   Amelioré la gesti...
78
79
              else
                  res.json(membre);
2f593328   Geoffrey PREUD'HOMME   Linting
80
          });
2201e360   Geoffrey PREUD'HOMME   Le login se fait ...
81
      });
0bda071e   Geoffrey PREUD'HOMME   Reroutage
82
83
  });
  
a7189c82   Geoffrey PREUD'HOMME   Membres comme con...
84
  api.delete('/membres/:membre_id', function (req, res) { // Supression d'un membre
2f593328   Geoffrey PREUD'HOMME   Linting
85
      ifPermission(req, res, 'canDelMembre', function () {
7a1fe62d   Geoffrey PREUD'HOMME   Consistence des noms
86
          MembresServ.remove(req.params.membre_id, function (err, membre) {
2f593328   Geoffrey PREUD'HOMME   Linting
87
88
              if (err)
                  res.send(err);
f661af15   Geoffrey PREUD'HOMME   Amelioré la gesti...
89
90
              else
                  res.json(null);
2f593328   Geoffrey PREUD'HOMME   Linting
91
          });
2201e360   Geoffrey PREUD'HOMME   Le login se fait ...
92
      });
2201e360   Geoffrey PREUD'HOMME   Le login se fait ...
93
  });
0bda071e   Geoffrey PREUD'HOMME   Reroutage
94
  
2201e360   Geoffrey PREUD'HOMME   Le login se fait ...
95
  module.exports = api;