@@ -77,6 +77,13 @@ Backend.prototype.MIDDLEWARE_ACTIONS = {
77
77
submit : 'submit'
78
78
} ;
79
79
80
+ Backend . prototype . SNAPSHOT_TYPES = {
81
+ // The current snapshot is being fetched (eg through backend.fetch)
82
+ current : 'current' ,
83
+ // A specific snapshot is being fetched by version (eg through backend.fetchSnapshot)
84
+ byVersion : 'byVersion'
85
+ } ;
86
+
80
87
Backend . prototype . _shimDocAction = function ( ) {
81
88
if ( warnDeprecatedDoc ) {
82
89
warnDeprecatedDoc = false ;
@@ -264,15 +271,21 @@ Backend.prototype._sanitizeOpsBulk = function(agent, projection, collection, ops
264
271
} , callback ) ;
265
272
} ;
266
273
267
- Backend . prototype . _sanitizeSnapshots = function ( agent , projection , collection , snapshots , callback ) {
274
+ Backend . prototype . _sanitizeSnapshots = function ( agent , projection , collection , snapshots , snapshotType , callback ) {
268
275
if ( projection ) {
269
276
try {
270
277
projections . projectSnapshots ( projection . fields , snapshots ) ;
271
278
} catch ( err ) {
272
279
return callback ( err ) ;
273
280
}
274
281
}
275
- var request = { collection : collection , snapshots : snapshots } ;
282
+
283
+ var request = {
284
+ collection : collection ,
285
+ snapshots : snapshots ,
286
+ snapshotType : snapshotType
287
+ } ;
288
+
276
289
this . trigger ( this . MIDDLEWARE_ACTIONS . readSnapshots , agent , request , callback ) ;
277
290
} ;
278
291
@@ -352,7 +365,7 @@ Backend.prototype.fetch = function(agent, index, id, callback) {
352
365
if ( err ) return callback ( err ) ;
353
366
var snapshotProjection = backend . _getSnapshotProjection ( backend . db , projection ) ;
354
367
var snapshots = [ snapshot ] ;
355
- backend . _sanitizeSnapshots ( agent , snapshotProjection , collection , snapshots , function ( err ) {
368
+ backend . _sanitizeSnapshots ( agent , snapshotProjection , collection , snapshots , backend . SNAPSHOT_TYPES . current , function ( err ) {
356
369
if ( err ) return callback ( err ) ;
357
370
backend . emit ( 'timing' , 'fetch' , Date . now ( ) - start , request ) ;
358
371
callback ( null , snapshot ) ;
@@ -376,7 +389,7 @@ Backend.prototype.fetchBulk = function(agent, index, ids, callback) {
376
389
if ( err ) return callback ( err ) ;
377
390
var snapshotProjection = backend . _getSnapshotProjection ( backend . db , projection ) ;
378
391
var snapshots = backend . _getSnapshotsFromMap ( ids , snapshotMap ) ;
379
- backend . _sanitizeSnapshots ( agent , snapshotProjection , collection , snapshots , function ( err ) {
392
+ backend . _sanitizeSnapshots ( agent , snapshotProjection , collection , snapshots , backend . SNAPSHOT_TYPES . current , function ( err ) {
380
393
if ( err ) return callback ( err ) ;
381
394
backend . emit ( 'timing' , 'fetchBulk' , Date . now ( ) - start , request ) ;
382
395
callback ( null , snapshotMap ) ;
@@ -564,7 +577,7 @@ Backend.prototype._query = function(agent, request, callback) {
564
577
var backend = this ;
565
578
request . db . query ( request . collection , request . query , request . fields , request . options , function ( err , snapshots , extra ) {
566
579
if ( err ) return callback ( err ) ;
567
- backend . _sanitizeSnapshots ( agent , request . snapshotProjection , request . collection , snapshots , function ( err ) {
580
+ backend . _sanitizeSnapshots ( agent , request . snapshotProjection , request . collection , snapshots , backend . SNAPSHOT_TYPES . current , function ( err ) {
568
581
callback ( err , snapshots , extra ) ;
569
582
} ) ;
570
583
} ) ;
@@ -602,7 +615,8 @@ Backend.prototype.fetchSnapshot = function(agent, index, id, version, callback)
602
615
if ( error ) return callback ( error ) ;
603
616
var snapshotProjection = backend . _getSnapshotProjection ( backend . db , projection ) ;
604
617
var snapshots = [ snapshot ] ;
605
- backend . _sanitizeSnapshots ( agent , snapshotProjection , collection , snapshots , function ( error ) {
618
+ var snapshotType = backend . SNAPSHOT_TYPES . byVersion ;
619
+ backend . _sanitizeSnapshots ( agent , snapshotProjection , collection , snapshots , snapshotType , function ( error ) {
606
620
if ( error ) return callback ( error ) ;
607
621
backend . emit ( 'timing' , 'fetchSnapshot' , Date . now ( ) - start , request ) ;
608
622
callback ( null , snapshot ) ;
0 commit comments