NinfoServ.js 1.4 KB
var NinfoModl = require('../models/NinfoModl');
var PolyUserServ = require('../services/PolyUserServ');
var async = require('async');

var NinfoServ = module.exports = {

    equipes: ['nope', 'ci', 'imagis', 'gis', 'ima5'],

    simple: ['login', 'equipe', 'comment'],

    simpleData: function (ninfoD, cb) {
        var ninfo = {};
        for (var prop of NinfoServ.simple) {
            ninfo[prop] = ninfoD[prop];
        }
        cb(null, ninfo);
    },


    getLogin: function (login, cb) {
        NinfoModl.findOne({
            login: login
        }, function createIfNotExist(err, ninfo) {
            if (ninfo) {
                cb(err, ninfo);
            } else {
                NinfoModl.create({login: login}, cb);
            }
        });
    },

    assert: function(data, cb) {
        cb(null, data.login && NinfoServ.equipes.indexOf(data.equipe) != -1);
    },

    add: function (data, cb) { // Ajouter les préférences, ou les mettre
                               // à jour (vu qu'il n'y a pas de sujet add fait les deux)
        // Pas de vérification car tout est fait dans assert (et login n'est pas modifié
        // par l'utilisateur)
        NinfoServ.getLogin(data.login, function(err, ninfo) {
            ninfo.equipe = data.equipe;
            ninfo.comment = data.comment;
            ninfo.save(cb);
        });
    },

    list: function (cb) {
        NinfoModl.find({}, cb);
    },

};