Make push follow controller and adapter style

This commit is contained in:
wangmengyan95
2016-02-10 12:03:02 -08:00
parent 6afaeb808b
commit 06b1ee2362
6 changed files with 90 additions and 95 deletions

View File

@@ -5,7 +5,6 @@ var batch = require('./batch'),
cache = require('./cache'),
DatabaseAdapter = require('./DatabaseAdapter'),
express = require('express'),
PushAdapter = require('./Adapters/Push/PushAdapter'),
middlewares = require('./middlewares'),
multer = require('multer'),
Parse = require('parse/node').Parse,
@@ -14,9 +13,12 @@ var batch = require('./batch'),
import { GridStoreAdapter } from './Adapters/Files/GridStoreAdapter';
import { S3Adapter } from './Adapters/Files/S3Adapter';
import { FilesController } from './Controllers/FilesController';
import ParsePushAdapter from './Adapters/Push/ParsePushAdapter';
import { PushController } from './Controllers/PushController';
// Mutate the Parse object to add the Cloud Code handlers
addParseCloud();
@@ -42,6 +44,8 @@ addParseCloud();
// "dotNetKey": optional key from Parse dashboard
// "restAPIKey": optional key from Parse dashboard
// "javascriptKey": optional key from Parse dashboard
// "push": optional key from configure push
function ParseServer(args) {
if (!args.appId || !args.masterKey) {
throw 'You must provide an appId and masterKey!';
@@ -51,8 +55,18 @@ function ParseServer(args) {
DatabaseAdapter.setAdapter(args.databaseAdapter);
}
// Make files adapter
let filesAdapter = args.filesAdapter || new GridStoreAdapter();
// Make push adapter
let pushConfig = args.push;
let pushAdapter;
if (pushConfig && pushConfig.adapter) {
pushAdapter = pushConfig.adapter;
} else if (pushConfig) {
pushAdapter = new ParsePushAdapter(pushConfig)
}
if (args.databaseURI) {
DatabaseAdapter.setAppDatabaseURI(args.appId, args.databaseURI);
}
@@ -87,10 +101,6 @@ function ParseServer(args) {
cache.apps[args.appId]['facebookAppIds'].push(process.env.FACEBOOK_APP_ID);
}
// Register push senders
var pushConfig = args.push;
PushAdapter.getAdapter().initialize(pushConfig);
// Initialize the node client SDK automatically
Parse.initialize(args.appId, args.javascriptKey || '', args.masterKey);
if(args.serverURL) {
@@ -122,13 +132,14 @@ function ParseServer(args) {
router.merge(require('./sessions'));
router.merge(require('./roles'));
router.merge(require('./analytics'));
router.merge(require('./push').router);
router.merge(require('./installations'));
router.merge(require('./functions'));
router.merge(require('./schemas'));
if (process.env.PARSE_EXPERIMENTAL_CONFIG_ENABLED || process.env.TESTING) {
router.merge(require('./global_config'));
}
let pushController = new PushController(pushAdapter);
router.merge(pushController.getExpressRouter());
batch.mountOnto(router);