Blame view

app/services/MessServ.js 2.09 KB
f22cd7f3   Geoffrey PREUD'HOMME   Système de messag...
1
  var MessModl = require('../models/MessModl');
278868c0   Geoffrey PREUD'HOMME   Refactorisation d...
2
  var MembresServ = require('../services/MembresServ');
f22cd7f3   Geoffrey PREUD'HOMME   Système de messag...
3
4
  var async = require('async');
  
63f92223   Geoffrey PREUD'HOMME   Fixé création de ...
5
  var MesssServ = module.exports = {
f22cd7f3   Geoffrey PREUD'HOMME   Système de messag...
6
  
63f92223   Geoffrey PREUD'HOMME   Fixé création de ...
7
      simple: ['_id', 'login', 'content', 'conv', 'date', 'hidden'],
f22cd7f3   Geoffrey PREUD'HOMME   Système de messag...
8
  
63f92223   Geoffrey PREUD'HOMME   Fixé création de ...
9
      simpleData: function (messD, cb) {
278868c0   Geoffrey PREUD'HOMME   Refactorisation d...
10
  
63f92223   Geoffrey PREUD'HOMME   Fixé création de ...
11
12
13
14
15
          async.parallel([
              function (cba) {
                  var mess = {};
                  for (var prop of MesssServ.simple) {
                      mess[prop] = messD[prop];
278868c0   Geoffrey PREUD'HOMME   Refactorisation d...
16
                  }
63f92223   Geoffrey PREUD'HOMME   Fixé création de ...
17
18
19
20
21
                  cba(null, mess);
              },
              function (cba) {
                  async.waterfall([
                      function (cbaa) {
f22cd7f3   Geoffrey PREUD'HOMME   Système de messag...
22
  
63f92223   Geoffrey PREUD'HOMME   Fixé création de ...
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
                          MembresServ.getLogin(messD.login, cbaa);
                      },
                      function (membre, cbaa) {
                          MembresServ.simpleData(membre, cbaa);
                      }
                  ], cba);
              }
          ], function (err, res) {
              if (err) {
                  cb(err);
              } else {
                  mess = res[0];
                  mess.auteur = res[1];
                  cb(null, mess);
              }
          });
      },
278868c0   Geoffrey PREUD'HOMME   Refactorisation d...
40
  
63f92223   Geoffrey PREUD'HOMME   Fixé création de ...
41
42
43
      get: function (id, cb) {
          MessModl.findById(id, cb);
      },
278868c0   Geoffrey PREUD'HOMME   Refactorisation d...
44
  
63f92223   Geoffrey PREUD'HOMME   Fixé création de ...
45
46
47
48
49
50
51
52
53
54
      children: function (conv, cb) {
          MessModl.find({
              conv: conv,
              $or: [{
                  hidden: false
              }, {
                  hidden: undefined
              }]
          }, cb);
      },
f22cd7f3   Geoffrey PREUD'HOMME   Système de messag...
55
  
63f92223   Geoffrey PREUD'HOMME   Fixé création de ...
56
57
58
      assert: function (mess, cb) {
          cb(null, mess.login && mess.content && mess.conv);
      },
f22cd7f3   Geoffrey PREUD'HOMME   Système de messag...
59
  
63f92223   Geoffrey PREUD'HOMME   Fixé création de ...
60
61
62
63
64
65
66
      add: function (data, cb) {
          MessModl.create({
              content: data.content,
              login: data.login,
              conv: data.conv
          }, cb);
      },
ba3a9e89   Geoffrey PREUD'HOMME   Ajout de l'éditio...
67
  
63f92223   Geoffrey PREUD'HOMME   Fixé création de ...
68
69
70
71
72
      edit: function (mess, data, cb) {
          mess.content = data.content;
          // TODO Edit date
          mess.save(cb);
      },
f22cd7f3   Geoffrey PREUD'HOMME   Système de messag...
73
  
63f92223   Geoffrey PREUD'HOMME   Fixé création de ...
74
75
76
77
78
79
80
81
82
83
84
      remove: function (id, cb) {
          async.waterfall([function (cba) {
              MesssServ.get(id, cba);
          }, function (mess, cba) {
              cba(mess ? null : 'notfound', mess);
          }, function (mess, cba) {
              mess.hidden = true;
              mess.save(cba);
          }], cb);
      }
  };