1- import PushController from '../Controllers/PushController'
21import PromiseRouter from '../PromiseRouter' ;
2+ import * as middleware from "../middlewares" ;
3+ import { Parse } from "parse/node" ;
34
45export class PushRouter extends PromiseRouter {
56
67 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 ) ;
199 }
2010
21- handlePOST ( req ) {
22- // TODO: move to middlewares when support for Promise middlewares
23- PushRouter . validateMasterKey ( req ) ;
24-
11+ static handlePOST ( req ) {
2512 const pushController = req . config . pushController ;
2613 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' ) ;
2915 }
3016
31- var where = PushRouter . getQueryCondition ( req ) ;
32-
17+ let where = PushRouter . getQueryCondition ( req ) ;
3318 pushController . sendPush ( req . body , where , req . config , req . auth ) ;
3419 return Promise . resolve ( {
35- response : {
36- 'result' : true
37- }
20+ response : {
21+ 'result' : true
22+ }
3823 } ) ;
3924 }
40-
41- /**
25+
26+ /**
4227 * Get query condition from the request body.
43- * @param {Object } request A request object
28+ * @param {Object } req A request object
4429 * @returns {Object } The query condition, the where field in a query api call
4530 */
4631 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' ;
5035
51- var where ;
36+ let where ;
5237 if ( hasWhere && hasChannels ) {
5338 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.' ) ;
5540 } else if ( hasWhere ) {
5641 where = body . where ;
5742 } else if ( hasChannels ) {
@@ -62,11 +47,10 @@ export class PushRouter extends PromiseRouter {
6247 }
6348 } else {
6449 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.' ) ;
6651 }
6752 return where ;
6853 }
69-
7054}
7155
7256export default PushRouter ;
0 commit comments