@@ -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
+ // An historical snapshot is being fetched (eg through backend.fetchSnapshot)
84
+ historical : 'historical'
85
+ } ;
86
+
80
87
Backend . prototype . _shimDocAction = function ( ) {
81
88
if ( warnDeprecatedDoc ) {
82
89
warnDeprecatedDoc = false ;
@@ -264,15 +271,7 @@ Backend.prototype._sanitizeOpsBulk = function(agent, projection, collection, ops
264
271
} , callback ) ;
265
272
} ;
266
273
267
- Backend . prototype . _sanitizeSnapshots = function ( agent , projection , collection , snapshots , request , callback ) {
268
- if ( typeof request === 'function' ) {
269
- callback = request ;
270
- request = { } ;
271
- }
272
-
273
- request . collection = collection ;
274
- request . snapshots = snapshots ;
275
-
274
+ Backend . prototype . _sanitizeSnapshots = function ( agent , projection , collection , snapshots , snapshotType , callback ) {
276
275
if ( projection ) {
277
276
try {
278
277
projections . projectSnapshots ( projection . fields , snapshots ) ;
@@ -281,6 +280,12 @@ Backend.prototype._sanitizeSnapshots = function(agent, projection, collection, s
281
280
}
282
281
}
283
282
283
+ var request = {
284
+ collection : collection ,
285
+ snapshots : snapshots ,
286
+ snapshotType : snapshotType
287
+ } ;
288
+
284
289
this . trigger ( this . MIDDLEWARE_ACTIONS . readSnapshots , agent , request , callback ) ;
285
290
} ;
286
291
@@ -360,7 +365,7 @@ Backend.prototype.fetch = function(agent, index, id, callback) {
360
365
if ( err ) return callback ( err ) ;
361
366
var snapshotProjection = backend . _getSnapshotProjection ( backend . db , projection ) ;
362
367
var snapshots = [ snapshot ] ;
363
- backend . _sanitizeSnapshots ( agent , snapshotProjection , collection , snapshots , function ( err ) {
368
+ backend . _sanitizeSnapshots ( agent , snapshotProjection , collection , snapshots , backend . SNAPSHOT_TYPES . current , function ( err ) {
364
369
if ( err ) return callback ( err ) ;
365
370
backend . emit ( 'timing' , 'fetch' , Date . now ( ) - start , request ) ;
366
371
callback ( null , snapshot ) ;
@@ -384,7 +389,7 @@ Backend.prototype.fetchBulk = function(agent, index, ids, callback) {
384
389
if ( err ) return callback ( err ) ;
385
390
var snapshotProjection = backend . _getSnapshotProjection ( backend . db , projection ) ;
386
391
var snapshots = backend . _getSnapshotsFromMap ( ids , snapshotMap ) ;
387
- backend . _sanitizeSnapshots ( agent , snapshotProjection , collection , snapshots , function ( err ) {
392
+ backend . _sanitizeSnapshots ( agent , snapshotProjection , collection , snapshots , backend . SNAPSHOT_TYPES . current , function ( err ) {
388
393
if ( err ) return callback ( err ) ;
389
394
backend . emit ( 'timing' , 'fetchBulk' , Date . now ( ) - start , request ) ;
390
395
callback ( null , snapshotMap ) ;
@@ -572,7 +577,7 @@ Backend.prototype._query = function(agent, request, callback) {
572
577
var backend = this ;
573
578
request . db . query ( request . collection , request . query , request . fields , request . options , function ( err , snapshots , extra ) {
574
579
if ( err ) return callback ( err ) ;
575
- 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 ) {
576
581
callback ( err , snapshots , extra ) ;
577
582
} ) ;
578
583
} ) ;
@@ -610,8 +615,8 @@ Backend.prototype.fetchSnapshot = function(agent, index, id, version, callback)
610
615
if ( error ) return callback ( error ) ;
611
616
var snapshotProjection = backend . _getSnapshotProjection ( backend . db , projection ) ;
612
617
var snapshots = [ snapshot ] ;
613
- var middlewareRequest = { v : version } ;
614
- backend . _sanitizeSnapshots ( agent , snapshotProjection , collection , snapshots , middlewareRequest , function ( error ) {
618
+ var snapshotType = backend . SNAPSHOT_TYPES . historical ;
619
+ backend . _sanitizeSnapshots ( agent , snapshotProjection , collection , snapshots , snapshotType , function ( error ) {
615
620
if ( error ) return callback ( error ) ;
616
621
backend . emit ( 'timing' , 'fetchSnapshot' , Date . now ( ) - start , request ) ;
617
622
callback ( null , snapshot ) ;
0 commit comments