@@ -20,24 +20,21 @@ function onQuery(collectionName, cb) {
20
20
cb ( shareRequest . query , session , next ) ;
21
21
22
22
} ) ;
23
- }
24
-
25
-
26
- function hook ( method , pattern , fn ) {
27
- var backend = this ;
28
-
29
23
backend . use ( 'apply' , function ( shareRequest , done ) {
30
- const stream = shareRequest . agent . stream || { }
31
-
32
24
const opData = shareRequest . op
33
25
const snapshot = shareRequest . snapshot
34
26
35
- if ( ! opData . create && ! opData . del && ! shareRequest . originalSnapshot ) {
27
+ if ( ! opData . create && ! shareRequest . originalSnapshot ) {
36
28
shareRequest . originalSnapshot = _ . cloneDeep ( snapshot )
37
29
}
38
30
39
31
done ( )
40
32
} )
33
+ }
34
+
35
+
36
+ function hook ( method , pattern , fn ) {
37
+ var backend = this ;
41
38
42
39
backend . use ( 'after submit' , function ( shareRequest , next ) {
43
40
var collectionName , firstDot , fullPath , matches , regExp , relPath , segments , op ;
@@ -48,7 +45,7 @@ function hook(method, pattern, fn) {
48
45
var backend = shareRequest . backend ;
49
46
var session = shareRequest . agent . connectSession ;
50
47
51
- if ( method === 'update' ) {
48
+ if ( method === 'update' && ! opData . del && ! opData . create ) {
52
49
if ( shareRequest . collection !== pattern ) return next ( )
53
50
fn ( docName , snapshot . data , shareRequest . originalSnapshot && shareRequest . originalSnapshot . data , session , backend , shareRequest ) ;
54
51
return next ( )
@@ -69,11 +66,11 @@ function hook(method, pattern, fn) {
69
66
switch ( method ) {
70
67
case 'del' :
71
68
if ( ! opData . del ) return next ( ) ;
72
- fn ( docName , shareRequest , session , backend ) ;
69
+ fn ( docName , shareRequest . originalSnapshot && shareRequest . originalSnapshot . data , session , backend , shareRequest ) ;
73
70
break ;
74
71
case 'create' :
75
72
if ( ! opData . create ) return next ( ) ;
76
- fn ( docName , shareRequest . snapshot . data , session , backend ) ;
73
+ fn ( docName , shareRequest . snapshot . data , session , backend , shareRequest ) ;
77
74
break ;
78
75
case 'change' :
79
76
var ops = opData . op ;
@@ -88,7 +85,7 @@ function hook(method, pattern, fn) {
88
85
regExp = patternToRegExp ( pattern ) ;
89
86
matches = regExp . exec ( fullPath ) ;
90
87
if ( matches ) {
91
- fn . apply ( null , Array . prototype . slice . call ( matches . slice ( 1 ) ) . concat ( [ lookup ( segments , snapshot . data ) ] , [ op ] , [ session ] , [ backend ] ) ) ;
88
+ fn . apply ( null , Array . prototype . slice . call ( matches . slice ( 1 ) ) . concat ( [ lookup ( segments , snapshot . data ) ] , [ op ] , [ session ] , [ backend ] , [ shareRequest ] ) ) ;
92
89
}
93
90
}
94
91
}
0 commit comments