1
- import PushController from '../Controllers/PushController'
2
1
import PromiseRouter from '../PromiseRouter' ;
2
+ import * as middleware from "../middlewares" ;
3
+ import { Parse } from "parse/node" ;
3
4
4
5
export class PushRouter extends PromiseRouter {
5
6
6
7
mountRoutes ( ) {
7
- this . route ( "POST" , "/push" , req => { return this . handlePOST ( req ) ; } ) ;
8
- }
9
-
10
- /**
11
- * Check whether the api call has master key or not.
12
- * @param {Object } request A request object
13
- */
14
- static validateMasterKey ( req ) {
15
- if ( req . info . masterKey !== req . config . masterKey ) {
16
- throw new Parse . Error ( Parse . Error . PUSH_MISCONFIGURED ,
17
- 'Master key is invalid, you should only use master key to send push' ) ;
18
- }
8
+ this . route ( "POST" , "/push" , middleware . promiseEnforceMasterKeyAccess , PushRouter . handlePOST ) ;
19
9
}
20
10
21
- handlePOST ( req ) {
22
- // TODO: move to middlewares when support for Promise middlewares
23
- PushRouter . validateMasterKey ( req ) ;
24
-
11
+ static handlePOST ( req ) {
25
12
const pushController = req . config . pushController ;
26
13
if ( ! pushController ) {
27
- throw new Parse . Error ( Parse . Error . PUSH_MISCONFIGURED ,
28
- 'Push controller is not set' ) ;
14
+ throw new Parse . Error ( Parse . Error . PUSH_MISCONFIGURED , 'Push controller is not set' ) ;
29
15
}
30
16
31
- var where = PushRouter . getQueryCondition ( req ) ;
32
-
17
+ let where = PushRouter . getQueryCondition ( req ) ;
33
18
pushController . sendPush ( req . body , where , req . config , req . auth ) ;
34
19
return Promise . resolve ( {
35
- response : {
36
- 'result' : true
37
- }
20
+ response : {
21
+ 'result' : true
22
+ }
38
23
} ) ;
39
24
}
40
-
41
- /**
25
+
26
+ /**
42
27
* Get query condition from the request body.
43
- * @param {Object } request A request object
28
+ * @param {Object } req A request object
44
29
* @returns {Object } The query condition, the where field in a query api call
45
30
*/
46
31
static getQueryCondition ( req ) {
47
- var body = req . body || { } ;
48
- var hasWhere = typeof body . where !== 'undefined' ;
49
- var hasChannels = typeof body . channels !== 'undefined' ;
32
+ let body = req . body || { } ;
33
+ let hasWhere = typeof body . where !== 'undefined' ;
34
+ let hasChannels = typeof body . channels !== 'undefined' ;
50
35
51
- var where ;
36
+ let where ;
52
37
if ( hasWhere && hasChannels ) {
53
38
throw new Parse . Error ( Parse . Error . PUSH_MISCONFIGURED ,
54
- 'Channels and query can not be set at the same time.' ) ;
39
+ 'Channels and query can not be set at the same time.' ) ;
55
40
} else if ( hasWhere ) {
56
41
where = body . where ;
57
42
} else if ( hasChannels ) {
@@ -62,11 +47,10 @@ export class PushRouter extends PromiseRouter {
62
47
}
63
48
} else {
64
49
throw new Parse . Error ( Parse . Error . PUSH_MISCONFIGURED ,
65
- 'Channels and query should be set at least one.' ) ;
50
+ 'Channels and query should be set at least one.' ) ;
66
51
}
67
52
return where ;
68
53
}
69
-
70
54
}
71
55
72
56
export default PushRouter ;
0 commit comments