session.getCreature = function(creature_id) { if(session.wait_for_creatures) { return null; } var obj_id = new ObjectID(creature_id); for(var i=0; i<session.creatures.length; ++i) { if(obj_id.equals(session.creatures[i]._id)) { return session.creatures[i]; } } return null; };
var OpItem = function (){ var unique_id = (function() { return function (){ function _p8(s) { var p = (Math.random().toString(16)+"000000000").substr(2,8); return s ? "" + p.substr(0,4) + "" + p.substr(4,4) : p ; } return _p8() + _p8(true) + _p8(true) + _p8(); } })(); this._OpId = unique_id().substring(0,24); this._id = mongoskin.ObjectID.createFromHexString(this._OpId) ; this.SetOpId = function(opid){ this._OpId =opid; for (var i = opid.length ;i < 24; i++) { opid="0" + opid; } this._id = mongoskin.ObjectID.createFromHexString(opid) ; } this.GetIdItem = function(){ return { _id : this._id }; } }
app.post('/deleteQuestion', loggedIn, function(req, res){ Questions.remove({_id: ObjectID.createFromHexString(req.body.id), videoId: req.body.videoId, user: req.session.user}, function(err, count){ if(!err && count == 1) { io.sockets.in(req.body.videoId).emit('deletedQuestion', req.body.id); } res.send('ok'); }); });
this.SetOpId = function(opid){ this._OpId =opid; for (var i = opid.length ;i < 24; i++) { opid="0" + opid; } this._id = mongoskin.ObjectID.createFromHexString(opid) ; }
router.get('/:id/next', function(req, res) { var db = req.db; var objId = req.params.id; var ObjectID = require('mongoskin').ObjectID; db.collection('teamlist').findOne({'_id' : ObjectID.createFromHexString(objId), 'schedule': {$elemMatch: { date : {$gte:new Date()}} }},function (err, items) { res.json(items); }); });
app.server.get("/creatures/delete", function(req, res) { var parsed_url = url.parse(req.url, true) , session_id = parsed_url.query["session_id"] , session = app.accounts.getSession(session_id); if(!session) { res.writeHead(400); res.end("Missing/invalid session id"); return; } var creature_id = parsed_url.query["creature_id"]; if(!creature_id || typeof(creature_id) != "string") { res.writeHead(400); res.end("Missing creature_id"); return; } if(session.wait_for_creatures) { res.writeHead(400); res.end("Not connected to database"); return; } var obj_id = new ObjectID(creature_id); for(var i=0; i<session.creatures.length; ++i) { if(obj_id.equals(session.creatures[i]._id)) { var C = session.creatures[i]; session.creatures.splice(i, 1); C.deleted = true; C.deleted_at = new Date(); app.emit("delete_creature", C); app.db.creatures.save(C); res.writeHead(200); res.end("Success"); return; } } res.writeHead(400); res.end("Error deleting creature/invalid id"); return; });
exports.plus = function (id, who, callback) { topics.findAndModify( { _id: mongo.ObjectID.createFromHexString(id) }, [['_id','asc']], {$addToSet: {vote: who}}, {'new': true}, callback ); };
ticket.save(function(err) { expect(ticket.created() instanceof Date).to.be(true); expect(ticket.viewed() instanceof Date).to.be(true); expect(ticket.creatorId() instanceof mongoskin.ObjectID).to.be(true); expect(ticket.creatorId().equals(creatorId)).to.be(true); expect(ticket.responderId() instanceof mongoskin.ObjectID).to.be(true); expect(ticket.responderId().equals(responderId)).to.be(true); expect(ticket.fixId() instanceof mongoskin.ObjectID).to.be(true); expect(ticket.fixId().equals(fixId)).to.be(true); ticket.viewed('2014-01-03'); var newCreatorId = new mongoskin.ObjectID(); var newResponderId = new mongoskin.ObjectID(); var newFixId = new mongoskin.ObjectID(); ticket.creatorId(newCreatorId.toHexString()); ticket.responderId(newResponderId.toHexString()); ticket.fixId(newFixId.toHexString()); ticket.save(function(err) { expect(ticket.viewed() instanceof Date).to.be(true); expect(ticket.creatorId() instanceof mongoskin.ObjectID).to.be(true); expect(ticket.creatorId().equals(newCreatorId)).to.be(true); expect(ticket.responderId() instanceof mongoskin.ObjectID).to.be(true); expect(ticket.responderId().equals(newResponderId)).to.be(true); expect(ticket.fixId() instanceof mongoskin.ObjectID).to.be(true); expect(ticket.fixId().equals(newFixId)).to.be(true); done(); }); });
it("parses a string as an ObjectID if the type is set to `ObjectID`", function(done) { var creatorId = new mongoskin.ObjectID(); var responderId = new mongoskin.ObjectID(); var fixId = new mongoskin.ObjectID(); var ticket = new Ticket({ created: '2014-01-01', viewed: '2014-01-02', message: 'Foo to you sir', creatorId: creatorId.toHexString(), responderId: responderId.toHexString(), fixId: fixId.toHexString() }); ticket.save(function(err) { expect(ticket.created() instanceof Date).to.be(true); expect(ticket.viewed() instanceof Date).to.be(true); expect(ticket.creatorId() instanceof mongoskin.ObjectID).to.be(true); expect(ticket.creatorId().equals(creatorId)).to.be(true); expect(ticket.responderId() instanceof mongoskin.ObjectID).to.be(true); expect(ticket.responderId().equals(responderId)).to.be(true); expect(ticket.fixId() instanceof mongoskin.ObjectID).to.be(true); expect(ticket.fixId().equals(fixId)).to.be(true); ticket.viewed('2014-01-03'); done(); }); });
var convert = function(obj) { var keys = Object.keys(obj); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = obj[key]; var type = typeof(value); if (type === 'string') { var reg = /ObjectId\('(\w{24})'\)/.exec(value); if (reg !== null && reg.length === 2) { obj[key] = mongo.ObjectID.createFromHexString(reg[1]); } } if(type === 'object'){ convert(value); } } };
exports.findOne = function (id, callback) { topics.findOne({_id: mongo.ObjectID.createFromHexString(id)}, callback); };
exports.changeTopic = function (id, update, callback) { update.updateAt = new Date(); topics.update({_id: mongo.ObjectID.createFromHexString(id)}, {$set: update}, callback); };