コード例 #1
0
ファイル: redisConnector.js プロジェクト: Vips2340/nohm-admin
 function (err) {
   if (err) {
     return console.log('Error: failed initialization while authing/selecting a redis DB ', err);
   }
   
   nohm.setClient(nohm_redis_client);
   nohm.setPrefix(config.nohm.prefix);
   
   cb();
 }
コード例 #2
0
ファイル: sockets.js プロジェクト: RoxasShadow/Bug.IO
  io.sockets.on('connection', function(socket) {
    console.log('Socket ' + socket.id + ' connected.');

    nohm.setPrefix('bugio:io:');
    nohm.setClient(client);

    socket.on('message', function(message) { // receive and save a message
      if(!socket.userid)
        return socket.send(false, message, 'Login required.');

      message.sender = socket.userid;
      message.recipients = message.recipients.filter(function(r) { return !!r; });
      message.ccs = (message.ccs || []).join('').split('');
      
      var msg = nohm.factory('Message');
      msg.p(message);
      msg.save(function(err) {
        if(err == 'invalid')
          socket.emit('validation_failed', msg.errors);
        else if(err)
          socket.emit('validation_failed', err);
        else {
          var deliveries = message.recipients.concat(message.ccs);
          deliveries.forEach(function(delivery) { // alert every recipient about the new message
            if(parseInt(delivery) > 0)
              socket.broadcast.to('user/' + delivery).emit('new_message', message);
          });
          socket.send(true, message); // inform myself about the new message
        }
      });
    });

    socket.on('login', function(data) {
      var cookies = cookie.parse(socket.handshake.headers.cookie);
      var sessid = cookies[cookie_id];
      
      client.get('bugio:session:' + sessid, function(err, value) {
        if(!value)
          return socket.emit('login', false);

        var storedCookie = JSON.parse(value);
        socket.userid = storedCookie['warden.user.user.key'][0][0];
        socket.join('user/' + socket.userid);
        return socket.emit('login', true);
      });
    });

    socket.on('disconnect', function(details) {
      console.log('Socket ' + socket.id + ' disconnected: ' + details + '.');
    });
  });
コード例 #3
0
ファイル: loadModel.js プロジェクト: Vips2340/nohm-admin
 return function (req, res, next){
   var id = req.param(param_name);
   var model = nohm.factory(model_name);
   if ( ! req.loaded) {
     req.loaded = {};
   }
   var _load = function (id) {
     model.load(id, function (err) {
       if (err) {
         next(new loadModelError('not_found', 404));
       } else {
         req.loaded[model_name] = model;
         next();
       }
     });
   };
   
   if (id && !do_string_search) {
     _load(id);
   } else if (id && do_string_search) {
     model.find({name:id}, function (err, ids) {
       if (err || ids.length === 0) {
         next(new loadModelError('not_found', 404));
       } else if (ids.length > 1) {
         next(new loadModelError('multiple_matches', 400));
       } else {
         _load(ids[0]);
       }
     });
   } else {
     next(new loadModelError('needs_id_param', 400));
   }
 }
コード例 #4
0
ファイル: index.js プロジェクト: Gurz/auth-server
 function(email, password, done) {
   var user = Nohm.factory('User');
   user.getByEmail(email, function(err, userRecord) {
     if (err) return done(null, false, { message :  err });
     return done(null,userRecord);
   });
 }
コード例 #5
0
ファイル: UserTests.js プロジェクト: Vips2340/nohm-admin
 redis.select(config.nohm.db || 0, function (err) {
   if (err) {
     console.log('problem selecting the redis db');
     process.exit(1);
   }
   Nohm.purgeDb(callback);
 });
コード例 #6
0
ファイル: index.js プロジェクト: Gurz/auth-server
  post : function (req, res, next) {
    var user = Nohm.factory('User');

    user.p('email', req.param('email'));
    user.p('password', req.param('password'));

    user.save(function (err) {
      if (err) {
        //build an error parser for errors in user.errors for more granular errors
        console.log('Error registering : %s', util.inspect(user.errors));
        res.render('register', {
          title : 'Register',
          err   : 'Looks like Your Form Data Was Invalid, Try Again'
        });
      } else {
          //Authenticate the current session if registration succeeds
          passport.authenticate('newUser', function(err, user, info) {
            if (err) return next(err);
            if (!user) return res.redirect('/login');
            req.logIn(user, function(err) {
              if (err) return next(err);
              return res.redirect('/home');
            });
          })(req, res, next);
      }
    });
  }
コード例 #7
0
ファイル: data.js プロジェクト: fuumashirou/esquema_servidor
 async.each(selection_items_ids, function(selection_item_id, callback) {
   var BaseItem = models.BaseItem;
   nohm.factory("BaseItem", selection_item_id, function() {
     selection_items_data.push(this.allProperties());
     callback();
   });
 }, function(err) {
コード例 #8
0
ファイル: data.js プロジェクト: fuumashirou/esquema_servidor
 async.each(selections_ids, function(selection_id, callback) {
   var Selection = models.Selection;
   nohm.factory("Selection", selection_id, function() {
     selection_data.push(this);
     callback();
   });
 }, function(err) {
コード例 #9
0
function Sale() {
  var order = nohm.factory('Order');
  var now = new Date();
  order.p({ orderDate: now });
  order.link(offer4blue, 'offer');
  order.save(function(err) { console.log("Saved blude order"); }); 
}
コード例 #10
0
ファイル: tvdbModel.js プロジェクト: maritz/seenit
 episodes.forEach(function (ep) {
   ep = nodeToJson(ep);
   if (seasons.indexOf(ep.SeasonNumber) === -1) {
     seasons.push(ep.SeasonNumber);
   }
   if (ep.EpisodeNumber) {
     var episode_model = nohm.factory('Episode');
     episode_model.p({
       tvdb_id: ep.id,
       imdb_id: ep.IMDB_ID,
       name: ep.EpisodeName,
       number: ep.EpisodeNumber,
       first_aired: ep.FirstAired,
       plot: ep.Overview,
       season: ep.SeasonNumber
     });
     show.link(episode_model, {
       error: function (err, errors, episode) {
         console.log('link_error', err, errors, episode.allProperties());
       }
     });
     show.link(episode_model, {
       name: 'season'+ep.SeasonNumber,
       error: function (err, errors, episode) {
         console.log('season link_error', err, errors, episode.allProperties());
       }
     });
   }
 });
コード例 #11
0
ファイル: sockets.js プロジェクト: RoxasShadow/Bug.IO
    socket.on('message', function(message) { // receive and save a message
      if(!socket.userid)
        return socket.send(false, message, 'Login required.');

      message.sender = socket.userid;
      message.recipients = message.recipients.filter(function(r) { return !!r; });
      message.ccs = (message.ccs || []).join('').split('');
      
      var msg = nohm.factory('Message');
      msg.p(message);
      msg.save(function(err) {
        if(err == 'invalid')
          socket.emit('validation_failed', msg.errors);
        else if(err)
          socket.emit('validation_failed', err);
        else {
          var deliveries = message.recipients.concat(message.ccs);
          deliveries.forEach(function(delivery) { // alert every recipient about the new message
            if(parseInt(delivery) > 0)
              socket.broadcast.to('user/' + delivery).emit('new_message', message);
          });
          socket.send(true, message); // inform myself about the new message
        }
      });
    });
コード例 #12
0
ファイル: index.js プロジェクト: Gurz/auth-server
passport.deserializeUser(function (id, done) {
  var user = Nohm.factory('User');
  user.load(id, function (err, properties) {
    if (err) {
      done (err,properties);
    } else {
      done(null, this.allProperties());
    }
  });
});
コード例 #13
0
ファイル: UserTests.js プロジェクト: Vips2340/nohm-admin
 redis.on('ready', function () {
   Nohm.setClient(redis);
   redis.select(config.nohm.db || 0, function (err) {
     if (err) {
       console.log('problem selecting the redis db');
       process.exit(1);
     }
     Nohm.purgeDb(callback);
   });
 });
コード例 #14
0
ファイル: tvdbModel.js プロジェクト: maritz/seenit
 async.filter(episode_ids, function (id, cb) {
   nohm.factory('Episode').find({
     tvdb_id: id
   }, function (err, ids) {
     if (err) {
       throw err;
     }
     cb(ids.length !== 0);
   });
 }, function (ids) {
コード例 #15
0
ファイル: user.js プロジェクト: irfn/login-oauth-provider
 findById: function(id, callback) {
     var foundUser = nohm.factory('User', id, function (err) {
         if (err === 'not found') {
             callback(err, null);
         } else if (err) {
             callback(err, null);
         } else {
             callback(null, foundUser.allProperties());
         }
     });
 },
コード例 #16
0
ファイル: EpisodeModel.js プロジェクト: maritz/seenit
 async.every(ids, function (id, next) {
   if (id === self.id) {
     next(true);
   } else {
     var episode = nohm.factory('Episode');
     episode.id = id;
     episode.getSeen(user, function (err, seen) {
       next(!err && seen);
     });
   }
 }, function (result) {
コード例 #17
0
redisClient.on("connect", function () {
    nohm.setClient(redisClient);
    console.log("Nohm Connected to Redis Client");
    //createUser();
    // testSaveSameUser();
//    testFindUser('tome2222');
    // testFindAndLoad('tomsse2');
    // testFindAndLoad('tome4');
    //testSignIn();

    testFindUserById(100);
});
コード例 #18
0
module.exports.findUser = function(userId, callback) {

    var foundUser = nohm.factory('User', userId, function (err) {
        if (err === 'not found') {
            console.log('no user with id ' + userId + ' found :-(');
        } else if (err) {
            console.log(err); // database or unknown error
        }
        callback(err, foundUser);
    });

}
コード例 #19
0
ファイル: EpisodeModel.js プロジェクト: maritz/seenit
 this.getAll('Show', 'defaultForeign', function  (err, ids) {
   if (err) {
     callback(err);
   } else {
     var show = nohm.factory('Show', ids[0], function (err) {
       if (err) {
         callback(err);
       } else {
         callback(null, show);
       }
     });
   }
 });
コード例 #20
0
ファイル: rfidUtil.js プロジェクト: DJES-Lab/Final
 return new Promise(function(resolve, reject) {
     var rfid = Nohm.factory('Rfid', id, function (err) {
         if (err) {
             reject({
                 type: 'INTERNAL',
                 message: 'Failed to load Rfid with id: ' + id
             });
         }
         else {
             resolve(rfid);
         }
     })
 });
コード例 #21
0
ファイル: tvdbModel.js プロジェクト: maritz/seenit
 importSeries: function (id, language, callback) {
   var self = this;
   var show = nohm.factory('Show');
   if (typeof (language) === 'function') {
     callback = language;
     language = 'en';
   }
   id = parseInt(id, 10);
   if (id > 0) {
     show.find({
       tvdb_id: ''+id
     }, function (err, ids) {
       if ( ! err && ids.length === 0) {
         self._tvdbRequest('/series/'+id+'/all/'+language+'.zip', 'zip', function (err, documents) {
           if (err) {
             callback(err, show);
           } else {
             documents.forEach(function (doc) {
               var name = doc.root().name();
               switch (name) {
                 case 'Data':
                   fillShowFromDataXml(show, doc);
                   break;
                 case 'Banners':
                   getBannerFromDataXml(show, doc, id, language, self);
                   break;
               }
             });
             show.save({
               continue_on_link_error: true
             }, function (err, linkage_error, link_name) {
               if (err && linkage_error) {
                 console.log('TVDB Error: while importing the linking of an episode failed for this relation:', link_name);
               }
               callback(err, show);
             });
           }
         });
       } else if (err) {
         callback(err, show);
       } else {
         show.load(ids[0], function (err) {
           callback(err, show);
         });
       }
     });
   } else {
     console.log('Called tvdbModel.importSeries with invalid id', arguments[0]);
     return callback('invalid id');
   }
 },
コード例 #22
0
ファイル: pagesController.js プロジェクト: mabel/wizard
pagesController.index = function() {
  var self = this;

  self.user = self.req.user;
  
  Nohm.factory('Controller').read({}, function(err, controllers) {
    if (err && err !== 'not found') {
      self.res.status(400);
    }
    self.controllers = controllers;

    self.render();
  });
}
コード例 #23
0
ファイル: rest-server.js プロジェクト: maritz/nohm
 app.post('/User/', async function(req, res, next) {
   try {
     const data = {
       name: req.body.name,
       password: req.body.password,
       email: req.body.email,
     };
     const user = await Nohm.factory('User'); // alternatively new UserModel(); like in put
     await user.store(data);
     res.json({ result: 'success', data: user.safeAllProperties() });
   } catch (err) {
     next(err);
   }
 });
コード例 #24
0
 store: function(props, done){
     var code = nohm.factory('AccessToken');
     code.p(props);
     code.save(function (err) {
         if (err === 'invalid') {
             console.log('properties were invalid: ');
             done(code.errors, null)
         } else if (err) {
             console.log(err);
             done(err, null)
         } else  {
             done(null, code);
         }
     });
 }
コード例 #25
0
ファイル: authController.js プロジェクト: mabel/wizard
authController.register = function() {
  var self = this,
      options = {},
      model = Nohm.factory('User');

  model.getCreateFields().forEach(function(field) {
    options[field] = self.param(field);
  });

  model.create(options, function (err) {
    var user = this;
    self.req.logIn(user, function(err) {
      self._callback(err, user.allProperties());
    });
  });
}
コード例 #26
0
ファイル: tvdbModel.js プロジェクト: maritz/seenit
 async.forEachLimit(documents[0].find('/Data/Series'), 10, function (node, cb) {
   if ( ! checkTime(node)) {
     cb();
   } else {
     nohm.factory('Show').find({
       tvdb_id: ''+node.get('id').text()
     }, function (err, ids) {
       if (ids.length === 0) {
         cb();
       } else if (err) {
         cb(err);
       } else {
         self.updateSeries(ids[0], episode_ids, cb);
       }
     });
   }
 }, done);
コード例 #27
0
ファイル: index.js プロジェクト: Gurz/node-auth-workshop
  post : function (req, res, next) {
    var user = Nohm.factory('User');

    user.p('email', req.param('email'));
    user.p('password', req.param('password'));

    user.save(function (err) {
      if (err) {
        console.log('Error registering : %s', user.errors);
        res.render('register', {
          title : 'Register',
          err   : user.errors
        });
      } else {
        res.redirect('/login');
      }
    });
  }
コード例 #28
0
ファイル: rest_server.js プロジェクト: Vips2340/nohm-admin
server.use(function (req, res, next) {
  res.ok = function (data, meta) {
    data = data || {};
    res.json({result: 'success', data: data, meta: meta});
  };
  
  //console.log(req.method, req.url);
  req.loaded = {};
  req.user = nohm.factory('User');
  if ( req.session.userdata && ! isNaN(req.session.userdata.id)) {
    req.user.load(req.session.userdata.id, function (err) {
      if (err) {
        req.session.logged_in = false;
        req.session.userdata = undefined;
      }
      next();
    });
  } else {
    next();
  }
});
コード例 #29
0
ファイル: rfidUtil.js プロジェクト: DJES-Lab/Final
 .then(function(rfidObj) {
     if (rfidObj) {
         reject({
             type: 'EXIST',
             message: 'Rfid ' + rfid + ' already exists'
         });
     } else {
         var rfidModel = Nohm.factory('Rfid');
         rfidModel.store({
             rfid: rfid,
             creationTime: new Date().toString()
         }, function (err) {
             if (err) {
                 reject({
                     type: 'INTERNAL',
                     message: 'Failed to create Rfid ' + rfid
                 });
             } else {
                 resolve(rfidModel.allProperties());
             }
         });
     }
 })
コード例 #30
0
ファイル: index.js プロジェクト: ixti/nohm-redis-test
var redis = require('redis').createClient();


// CONFIGURATION ///////////////////////////////////////////////////////////////


var TOPICS_AMOUNT = 100;        // Amount of topics
var POSTS_AMOUNT  = 1000;       // Amount of posts per topic to create
var KWORDS_AMOUNT = 10;         // Amount of keywords
var WORDS_AMOUNT  = 200;        // Amount of words in post body


// INIT ////////////////////////////////////////////////////////////////////////


nohm.setClient(redis);


// HELPER FUNCTIONS ////////////////////////////////////////////////////////////


var RND_COUNTER = Date.now();
var DOT_COUNTER = [0, 0];


function rnd() {
  RND_COUNTER += 1;
  return RND_COUNTER;
}