Blame view

app/routes/ApiRtes.js 3.6 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');
12162cc1   Geoffrey PREUD'HOMME   Liste de conversa...
4
  var ConvsServ = require('../services/ConvsServ');
0bda071e   Geoffrey PREUD'HOMME   Reroutage
5
6
  var express = require('express');
  
2201e360   Geoffrey PREUD'HOMME   Le login se fait ...
7
  var api = express();
0bda071e   Geoffrey PREUD'HOMME   Reroutage
8
  
10852373   Geoffrey PREUD'HOMME   Session contrôleu...
9
10
  // Sessions
  api.get('/session', function (req, res) { // Informations sur la session
2f593328   Geoffrey PREUD'HOMME   Linting
11
      if (req.cookies && req.cookies.session) {
7a1fe62d   Geoffrey PREUD'HOMME   Consistence des noms
12
          SessionsServ.use(req.cookies.session, function (err) {
2f593328   Geoffrey PREUD'HOMME   Linting
13
14
15
              if (err) {
                  res.send(err);
              } else {
7a1fe62d   Geoffrey PREUD'HOMME   Consistence des noms
16
                  res.send(SessionsServ.cur);
2f593328   Geoffrey PREUD'HOMME   Linting
17
18
19
20
21
22
              }
          });
          // TODO si pas bon : res.clearCookie('session')
      } else {
          res.send('missing');
      }
10852373   Geoffrey PREUD'HOMME   Session contrôleu...
23
24
25
  });
  
  api.post('/session', function (req, res) { // Se connecter
7a1fe62d   Geoffrey PREUD'HOMME   Consistence des noms
26
27
      DecryptServ.decrypt(req.body[0], function (data) {
          SessionsServ.open(JSON.parse(data), function (err) {
2f593328   Geoffrey PREUD'HOMME   Linting
28
29
30
              if (err) {
                  res.send(err);
              } else {
7a1fe62d   Geoffrey PREUD'HOMME   Consistence des noms
31
32
                  res.cookie('session', SessionsServ.cur._id);
                  res.send(SessionsServ.cur);
2f593328   Geoffrey PREUD'HOMME   Linting
33
34
              }
          });
2201e360   Geoffrey PREUD'HOMME   Le login se fait ...
35
      });
2201e360   Geoffrey PREUD'HOMME   Le login se fait ...
36
  });
10852373   Geoffrey PREUD'HOMME   Session contrôleu...
37
38
  
  api.delete('/session', function (req, res) { // Se déconnecter
2f593328   Geoffrey PREUD'HOMME   Linting
39
      if (req.cookies.session) {
7a1fe62d   Geoffrey PREUD'HOMME   Consistence des noms
40
          SessionsServ.delete(req.cookies.session, function () {
2f593328   Geoffrey PREUD'HOMME   Linting
41
42
43
44
45
46
              res.clearCookie('session');
              res.end();
          });
      } else {
          res.send('missing');
      }
2201e360   Geoffrey PREUD'HOMME   Le login se fait ...
47
  });
10852373   Geoffrey PREUD'HOMME   Session contrôleu...
48
  
69695d81   Geoffrey PREUD'HOMME   Serveur: Vérifica...
49
  ifPermission = function (req, res, perm, cb) {
7a1fe62d   Geoffrey PREUD'HOMME   Consistence des noms
50
      SessionsServ.use(req.cookies.session, function (err) {
2f593328   Geoffrey PREUD'HOMME   Linting
51
52
53
          if (err) {
              res.status(403).end();
          } else {
7a1fe62d   Geoffrey PREUD'HOMME   Consistence des noms
54
              if (SessionsServ.cur[perm]) {
2f593328   Geoffrey PREUD'HOMME   Linting
55
56
57
58
59
60
                  cb();
              } else {
                  res.status(403).end();
              }
          }
      });
2201e360   Geoffrey PREUD'HOMME   Le login se fait ...
61
  };
69695d81   Geoffrey PREUD'HOMME   Serveur: Vérifica...
62
  
10852373   Geoffrey PREUD'HOMME   Session contrôleu...
63
  
0bda071e   Geoffrey PREUD'HOMME   Reroutage
64
  // Membres
a7189c82   Geoffrey PREUD'HOMME   Membres comme con...
65
  api.get('/membres', function (req, res) { // Liste des membres
7a1fe62d   Geoffrey PREUD'HOMME   Consistence des noms
66
      MembresServ.list(function (err, membres) {
2f593328   Geoffrey PREUD'HOMME   Linting
67
68
          if (err)
              res.send(err);
25f72955   Geoffrey PREUD'HOMME   Liste des membres...
69
70
          else
              res.json(membres);
2f593328   Geoffrey PREUD'HOMME   Linting
71
      });
0bda071e   Geoffrey PREUD'HOMME   Reroutage
72
73
  });
  
a7189c82   Geoffrey PREUD'HOMME   Membres comme con...
74
  api.post('/membres', function (req, res) { // Ajout d'un membre
2f593328   Geoffrey PREUD'HOMME   Linting
75
      ifPermission(req, res, 'canAddMembre', function () {
7a1fe62d   Geoffrey PREUD'HOMME   Consistence des noms
76
          MembresServ.add(req.body, function (err, membre) {
2f593328   Geoffrey PREUD'HOMME   Linting
77
78
              if (err)
                  res.send(err);
f661af15   Geoffrey PREUD'HOMME   Amelioré la gesti...
79
80
              else
                  res.json(membre);
2f593328   Geoffrey PREUD'HOMME   Linting
81
          });
2201e360   Geoffrey PREUD'HOMME   Le login se fait ...
82
      });
0bda071e   Geoffrey PREUD'HOMME   Reroutage
83
84
  });
  
a7189c82   Geoffrey PREUD'HOMME   Membres comme con...
85
  api.delete('/membres/:membre_id', function (req, res) { // Supression d'un membre
2f593328   Geoffrey PREUD'HOMME   Linting
86
      ifPermission(req, res, 'canDelMembre', function () {
7a1fe62d   Geoffrey PREUD'HOMME   Consistence des noms
87
          MembresServ.remove(req.params.membre_id, function (err, membre) {
2f593328   Geoffrey PREUD'HOMME   Linting
88
89
              if (err)
                  res.send(err);
f661af15   Geoffrey PREUD'HOMME   Amelioré la gesti...
90
91
              else
                  res.json(null);
2f593328   Geoffrey PREUD'HOMME   Linting
92
          });
2201e360   Geoffrey PREUD'HOMME   Le login se fait ...
93
      });
2201e360   Geoffrey PREUD'HOMME   Le login se fait ...
94
  });
0bda071e   Geoffrey PREUD'HOMME   Reroutage
95
  
12162cc1   Geoffrey PREUD'HOMME   Liste de conversa...
96
97
98
99
100
101
102
103
104
105
106
  
  // Conversations
  api.get('/convs', function (req, res) { // Liste des convs
      ConvsServ.list(function (err, convs) {
          if (err)
              res.send(err);
          else
              res.json(convs);
      });
  });
  
9378de0d   Geoffrey PREUD'HOMME   Affichage d'une c...
107
108
109
110
111
112
113
114
115
  api.get('/convs/:conv_id', function (req, res) { // Une conv
      ConvsServ.get(req.params.conv_id, function (err, conv) {
          if (err)
              res.send(err);
          else
              res.json(conv);
      });
  });
  
12162cc1   Geoffrey PREUD'HOMME   Liste de conversa...
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
  api.post('/convs', function (req, res) { // Ajout d'un conv
      ifPermission(req, res, 'canAddConv', function () {
          ConvsServ.add(req.body, function (err, conv) {
              if (err)
                  res.send(err);
              else
                  res.json(conv);
          });
      });
  });
  
  api.delete('/convs/:conv_id', function (req, res) { // Supression d'un conv
      ifPermission(req, res, 'canDelConv', function () {
          ConvsServ.remove(req.params.conv_id, function (err, conv) {
              if (err)
                  res.send(err);
              else
                  res.json(null);
          });
      });
  });
  
2201e360   Geoffrey PREUD'HOMME   Le login se fait ...
138
  module.exports = api;