Merge pull request #608 from drew-gross/throw-no-server-url
Require a server URL
This commit is contained in:
@@ -2,8 +2,9 @@ var request = require('request');
|
||||
|
||||
describe('server', () => {
|
||||
it('requires a master key and app id', done => {
|
||||
expect(setServerConfiguration.bind(undefined, { masterKey: 'mykey' })).toThrow('You must provide an appId and masterKey!');
|
||||
expect(setServerConfiguration.bind(undefined, { appId: 'myId' })).toThrow('You must provide an appId and masterKey!');
|
||||
expect(setServerConfiguration.bind(undefined, { })).toThrow('You must provide an appId!');
|
||||
expect(setServerConfiguration.bind(undefined, { appId: 'myId' })).toThrow('You must provide a masterKey!');
|
||||
expect(setServerConfiguration.bind(undefined, { appId: 'myId', masterKey: 'mk' })).toThrow('You must provide a serverURL!');
|
||||
done();
|
||||
});
|
||||
|
||||
|
||||
25
src/index.js
25
src/index.js
@@ -11,7 +11,7 @@ var batch = require('./batch'),
|
||||
multer = require('multer'),
|
||||
Parse = require('parse/node').Parse,
|
||||
httpRequest = require('./httpRequest');
|
||||
|
||||
|
||||
import PromiseRouter from './PromiseRouter';
|
||||
import { GridStoreAdapter } from './Adapters/Files/GridStoreAdapter';
|
||||
import { S3Adapter } from './Adapters/Files/S3Adapter';
|
||||
@@ -31,12 +31,13 @@ import { SchemasRouter } from './Routers/SchemasRouter';
|
||||
import { IAPValidationRouter } from './Routers/IAPValidationRouter';
|
||||
import { PushRouter } from './Routers/PushRouter';
|
||||
import { FilesRouter } from './Routers/FilesRouter';
|
||||
import { LogsRouter } from './Routers/LogsRouter';
|
||||
import { LogsRouter } from './Routers/LogsRouter';
|
||||
|
||||
import { loadAdapter } from './Adapters/AdapterLoader';
|
||||
import { loadAdapter } from './Adapters/AdapterLoader';
|
||||
import { FileLoggerAdapter } from './Adapters/Logger/FileLoggerAdapter';
|
||||
import { LoggerController } from './Controllers/LoggerController';
|
||||
|
||||
import requiredParameter from './requiredParameter';
|
||||
// Mutate the Parse object to add the Cloud Code handlers
|
||||
addParseCloud();
|
||||
|
||||
@@ -65,8 +66,8 @@ addParseCloud();
|
||||
// "push": optional key from configure push
|
||||
|
||||
function ParseServer({
|
||||
appId,
|
||||
masterKey,
|
||||
appId = requiredParameter('You must provide an appId!'),
|
||||
masterKey = requiredParameter('You must provide a masterKey!'),
|
||||
databaseAdapter,
|
||||
filesAdapter,
|
||||
push,
|
||||
@@ -82,13 +83,9 @@ function ParseServer({
|
||||
facebookAppIds = [],
|
||||
enableAnonymousUsers = true,
|
||||
oauth = {},
|
||||
serverURL = '',
|
||||
serverURL = requiredParameter('You must provide a serverURL!'),
|
||||
maxUploadSize = '20mb'
|
||||
}) {
|
||||
if (!appId || !masterKey) {
|
||||
throw 'You must provide an appId and masterKey!';
|
||||
}
|
||||
|
||||
if (databaseAdapter) {
|
||||
DatabaseAdapter.setAdapter(databaseAdapter);
|
||||
}
|
||||
@@ -106,8 +103,8 @@ function ParseServer({
|
||||
throw "argument 'cloud' must either be a string or a function";
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
const filesControllerAdapter = loadAdapter(filesAdapter, GridStoreAdapter);
|
||||
const pushControllerAdapter = loadAdapter(push, ParsePushAdapter);
|
||||
const loggerControllerAdapter = loadAdapter(loggerAdapter, FileLoggerAdapter);
|
||||
@@ -117,7 +114,7 @@ function ParseServer({
|
||||
const filesController = new FilesController(filesControllerAdapter);
|
||||
const pushController = new PushController(pushControllerAdapter);
|
||||
const loggerController = new LoggerController(loggerControllerAdapter);
|
||||
|
||||
|
||||
cache.apps[appId] = {
|
||||
masterKey: masterKey,
|
||||
collectionPrefix: collectionPrefix,
|
||||
@@ -175,7 +172,7 @@ function ParseServer({
|
||||
new LogsRouter(),
|
||||
new IAPValidationRouter()
|
||||
];
|
||||
|
||||
|
||||
if (process.env.PARSE_EXPERIMENTAL_CONFIG_ENABLED || process.env.TESTING) {
|
||||
routers.push(require('./global_config'));
|
||||
}
|
||||
|
||||
2
src/requiredParameter.js
Normal file
2
src/requiredParameter.js
Normal file
@@ -0,0 +1,2 @@
|
||||
/* @flow */
|
||||
export default (errorMessage: string) => {throw errorMessage}
|
||||
Reference in New Issue
Block a user