2
2
module . exports = function ( store ) {
3
3
4
4
store . hook = function ( method , pattern , fn ) {
5
- return store . shareClient . use ( 'after submit' , function ( shareRequest , next ) {
6
- var backend , collectionName , docName , firstDot , fullPath , matches , op , opData , regExp , relPath , segments , session , snapshot , _i , _len , _ref ;
7
- opData = shareRequest . opData ;
5
+ var emitter = store . backend || store . shareClient ;
6
+
7
+ emitter . use ( 'after submit' , function ( shareRequest , next ) {
8
+ var collectionName , firstDot , fullPath , matches , regExp , relPath , segments , op ;
9
+
10
+ var opData = shareRequest . opData || shareRequest . op ;
11
+
8
12
if ( opData . del || opData . create ) {
9
13
collectionName = pattern ;
10
- if ( collectionName !== shareRequest . collection ) {
11
- return next ( ) ;
12
- }
14
+ if ( collectionName !== shareRequest . collection ) return next ( ) ;
13
15
} else {
14
16
firstDot = pattern . indexOf ( '.' ) ;
15
17
if ( firstDot === - 1 ) {
16
- if ( ! patternToRegExp ( pattern ) . test ( collectionName ) ) {
17
- return next ( ) ;
18
- }
18
+ if ( ! patternToRegExp ( pattern ) . test ( shareRequest . collection ) ) return next ( ) ;
19
19
} else {
20
20
collectionName = pattern . slice ( 0 , firstDot ) ;
21
- if ( collectionName !== shareRequest . collection ) {
22
- return next ( ) ;
23
- }
21
+ if ( collectionName !== shareRequest . collection ) return next ( ) ;
24
22
}
25
23
}
26
- snapshot = shareRequest . snapshot , docName = shareRequest . docName , backend = shareRequest . backend ;
27
- session = shareRequest . agent . connectSession ;
24
+
25
+ var snapshot = shareRequest . snapshot ;
26
+ var docName = shareRequest . docName || shareRequest . id ;
27
+ var backend = shareRequest . backend ;
28
+ var session = shareRequest . agent . connectSession ;
29
+
28
30
switch ( method ) {
29
31
case 'del' :
30
- if ( ! opData . del ) {
31
- return next ( ) ;
32
- }
32
+ if ( ! opData . del ) return next ( ) ;
33
33
fn ( docName , shareRequest , session , backend ) ;
34
34
break ;
35
35
case 'create' :
36
- if ( ! opData . create ) {
37
- return next ( ) ;
38
- }
36
+ if ( ! opData . create ) return next ( ) ;
39
37
fn ( docName , shareRequest . snapshot . data , session , backend ) ;
40
38
break ;
41
39
case 'change' :
42
- _ref = opData . op ;
43
- if ( _ref ) {
44
- for ( _i = 0 , _len = _ref . length ; _i < _len ; _i ++ ) {
45
- op = _ref [ _i ] ;
40
+ var ops = opData . op ;
41
+ if ( ops ) {
42
+ for ( var i = 0 ; i < ops . length ; i ++ ) {
43
+ op = ops [ i ] ;
46
44
segments = op . p ;
47
- if ( op . si || op . sd ) {
48
- segments = segments . slice ( 0 , - 1 ) ;
49
- }
45
+ if ( op . si || op . sd ) segments = segments . slice ( 0 , - 1 ) ;
46
+
50
47
relPath = segments . join ( '.' ) ;
51
48
fullPath = collectionName + '.' + docName + '.' + relPath ;
52
49
regExp = patternToRegExp ( pattern ) ;
@@ -57,28 +54,29 @@ module.exports = function(store) {
57
54
}
58
55
}
59
56
}
60
- return next ( ) ;
57
+ next ( ) ;
61
58
} ) ;
62
59
63
60
} ;
64
61
65
62
store . onQuery = function ( collectionName , cb ) {
66
- return this . shareClient . use ( 'query' , function ( shareRequest , next ) {
67
- var session ;
63
+ var emitter = store . backend || store . shareClient ;
64
+
65
+ emitter . use ( 'query' , function ( shareRequest , next ) {
68
66
69
- session = shareRequest . agent . connectSession ;
67
+ var session = shareRequest . agent . connectSession ;
70
68
71
69
if ( collectionName === '*' ) {
72
70
return cb ( shareRequest . collection , shareRequest . query , session , next ) ;
73
- } else {
74
- if ( shareRequest . collection !== collectionName ) {
75
- return next ( ) ;
76
- }
77
- return cb ( shareRequest . query , session , next ) ;
78
71
}
72
+
73
+ if ( shareRequest . collection !== collectionName ) return next ( ) ;
74
+
75
+ cb ( shareRequest . query , session , next ) ;
76
+
79
77
} ) ;
80
78
} ;
81
- return true ;
79
+
82
80
} ;
83
81
84
82
0 commit comments