From 5974ed40ccbcceaeb6855a7289b1e70ff0996dd1 Mon Sep 17 00:00:00 2001 From: Gunnar Schaefer <gsfr@stanford.edu> Date: Tue, 18 Feb 2014 22:29:44 -0800 Subject: [PATCH] fix ObjectIds --- collections_.py | 12 ++++++------ experiments.py | 26 +++++++++++++------------- 2 files changed, 19 insertions(+), 19 deletions(-) diff --git a/collections_.py b/collections_.py index 2b4af5ea..d433e94f 100644 --- a/collections_.py +++ b/collections_.py @@ -117,7 +117,7 @@ class Collection(nimsapiutil.NIMSRequestHandler): def get(self, cid): """Return one Collection, conditionally with details.""" - collection = self.app.db.collections.find_one({'_id': bson.objectid.ObjectId(cid)}) + collection = self.app.db.collections.find_one({'_id': bson.ObjectId(cid)}) if not collection: self.abort(404) if not self.user_is_superuser: @@ -177,13 +177,13 @@ class Sessions(nimsapiutil.NIMSRequestHandler): def get(self, cid): """Return the list of Session Epochs.""" - collection = self.app.db.collections.find_one({'_id': bson.objectid.ObjectId(cid)}) + collection = self.app.db.collections.find_one({'_id': bson.ObjectId(cid)}) if not collection: self.abort(404) if not self.user_is_superuser and self.userid not in collection['permissions']: self.abort(403) aggregated_epochs = self.app.db.epochs.aggregate([ - {'$match': {'collections': bson.objectid.ObjectId(cid)}}, + {'$match': {'collections': bson.ObjectId(cid)}}, {'$group': {'_id': '$session'}}, ])['result'] query = {'_id': {'$in': [agg_epoch['_id'] for agg_epoch in aggregated_epochs]}} @@ -239,15 +239,15 @@ class Epochs(nimsapiutil.NIMSRequestHandler): def get(self, cid): """Return the list of Session Epochs.""" - collection = self.app.db.collections.find_one({'_id': bson.objectid.ObjectId(cid)}) + collection = self.app.db.collections.find_one({'_id': bson.ObjectId(cid)}) if not collection: self.abort(404) if not self.user_is_superuser and self.userid not in collection['permissions']: self.abort(403) - query = {'collections': bson.objectid.ObjectId(cid)} + query = {'collections': bson.ObjectId(cid)} sid = self.request.get('session') if re.match(r'^[0-9a-f]{24}$', sid): - query['session'] = bson.objectid.ObjectId(sid) + query['session'] = bson.ObjectId(sid) elif sid != '': self.abort(400) projection = ['name', 'description', 'datatype'] diff --git a/experiments.py b/experiments.py index 40bf91dc..96ede6cb 100644 --- a/experiments.py +++ b/experiments.py @@ -116,7 +116,7 @@ class Experiment(nimsapiutil.NIMSRequestHandler): def get(self, xid): """Return one Experiment, conditionally with details.""" - experiment = self.app.db.experiments.find_one({'_id': bson.objectid.ObjectId(xid)}) + experiment = self.app.db.experiments.find_one({'_id': bson.ObjectId(xid)}) if not experiment: self.abort(404) if not self.user_is_superuser: @@ -176,12 +176,12 @@ class Sessions(nimsapiutil.NIMSRequestHandler): def get(self, xid): """Return the list of Experiment Sessions.""" - experiment = self.app.db.experiments.find_one({'_id': bson.objectid.ObjectId(xid)}) + experiment = self.app.db.experiments.find_one({'_id': bson.ObjectId(xid)}) if not experiment: self.abort(404) if not self.user_is_superuser and self.userid not in experiment['permissions']: self.abort(403) - query = {'experiment': bson.objectid.ObjectId(xid)} + query = {'experiment': bson.ObjectId(xid)} projection = ['name', 'subject', 'notes'] sessions = list(self.app.db.sessions.find(query, projection)) self.response.write(json.dumps(sessions, default=bson.json_util.default)) @@ -232,10 +232,10 @@ class Session(nimsapiutil.NIMSRequestHandler): def get(self, sid): """Return one Session, conditionally with details.""" - session = self.app.db.sessions.find_one({'_id': bson.objectid.ObjectId(sid)}) + session = self.app.db.sessions.find_one({'_id': bson.ObjectId(sid)}) if not session: self.abort(404) - experiment = self.app.db.experiments.find_one({'_id': bson.objectid.ObjectId(session['experiment'])}) + experiment = self.app.db.experiments.find_one({'_id': session['experiment']}) if not experiment: self.abort(500) if not self.user_is_superuser and self.userid not in experiment['permissions']: @@ -244,10 +244,10 @@ class Session(nimsapiutil.NIMSRequestHandler): def put(self, sid): """Update an existing Session.""" - session = self.app.db.sessions.find_one({'_id': bson.objectid.ObjectId(sid)}) + session = self.app.db.sessions.find_one({'_id': bson.ObjectId(sid)}) if not session: self.abort(404) - experiment = self.app.db.experiments.find_one({'_id': bson.objectid.ObjectId(session['experiment'])}) + experiment = self.app.db.experiments.find_one({'_id': session['experiment']}) if not experiment: self.abort(500) if not self.user_is_superuser and self.userid not in experiment['permissions']: @@ -256,7 +256,7 @@ class Session(nimsapiutil.NIMSRequestHandler): for k, v in self.request.params.iteritems(): if k in ['notes']: updates['$set'][k] = v # FIXME: do appropriate type conversion - self.app.db.sessions.update({'_id': bson.objectid.ObjectId(sid)}, updates) + self.app.db.sessions.update({'_id': bson.ObjectId(sid)}, updates) def delete(self, sid): """Delete an Session.""" @@ -313,15 +313,15 @@ class Epochs(nimsapiutil.NIMSRequestHandler): def get(self, sid): """Return the list of Session Epochs.""" - session = self.app.db.sessions.find_one({'_id': bson.objectid.ObjectId(sid)}) + session = self.app.db.sessions.find_one({'_id': bson.ObjectId(sid)}) if not session: self.abort(404) - experiment = self.app.db.experiments.find_one({'_id': bson.objectid.ObjectId(session['experiment'])}) + experiment = self.app.db.experiments.find_one({'_id': session['experiment']}) if not experiment: self.abort(500) if not self.user_is_superuser and self.userid not in experiment['permissions']: self.abort(403) - query = {'session': bson.objectid.ObjectId(sid)} + query = {'session': bson.ObjectId(sid)} projection = ['name', 'description', 'datatype'] epochs = list(self.app.db.epochs.find(query, projection)) self.response.write(json.dumps(epochs, default=bson.json_util.default)) @@ -368,13 +368,13 @@ class Epoch(nimsapiutil.NIMSRequestHandler): def get(self, eid): """Return one Epoch, conditionally with details.""" - epoch = self.app.db.epochs.find_one({'_id': bson.objectid.ObjectId(eid)}) + epoch = self.app.db.epochs.find_one({'_id': bson.ObjectId(eid)}) if not epoch: self.abort(404) session = self.app.db.sessions.find_one({'_id': epoch['session']}) if not session: self.abort(500) - experiment = self.app.db.experiments.find_one({'_id': bson.objectid.ObjectId(session['experiment'])}) + experiment = self.app.db.experiments.find_one({'_id': session['experiment']}) if not experiment: self.abort(500) if not self.user_is_superuser and self.userid not in experiment['permissions']: -- GitLab