Require a server URL

This commit is contained in:
Drew Gross
2016-02-23 12:54:20 -08:00
parent 531e2ffea8
commit 2dc080fd00
3 changed files with 16 additions and 16 deletions

View File

@@ -2,8 +2,9 @@ var request = require('request');
describe('server', () => { describe('server', () => {
it('requires a master key and app id', done => { 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, { })).toThrow('You must provide an appId!');
expect(setServerConfiguration.bind(undefined, { appId: 'myId' })).toThrow('You must provide an appId and masterKey!'); 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(); done();
}); });

View File

@@ -11,7 +11,7 @@ var batch = require('./batch'),
multer = require('multer'), multer = require('multer'),
Parse = require('parse/node').Parse, Parse = require('parse/node').Parse,
httpRequest = require('./httpRequest'); httpRequest = require('./httpRequest');
import PromiseRouter from './PromiseRouter'; import PromiseRouter from './PromiseRouter';
import { GridStoreAdapter } from './Adapters/Files/GridStoreAdapter'; import { GridStoreAdapter } from './Adapters/Files/GridStoreAdapter';
import { S3Adapter } from './Adapters/Files/S3Adapter'; import { S3Adapter } from './Adapters/Files/S3Adapter';
@@ -31,12 +31,13 @@ import { SchemasRouter } from './Routers/SchemasRouter';
import { IAPValidationRouter } from './Routers/IAPValidationRouter'; import { IAPValidationRouter } from './Routers/IAPValidationRouter';
import { PushRouter } from './Routers/PushRouter'; import { PushRouter } from './Routers/PushRouter';
import { FilesRouter } from './Routers/FilesRouter'; 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 { FileLoggerAdapter } from './Adapters/Logger/FileLoggerAdapter';
import { LoggerController } from './Controllers/LoggerController'; import { LoggerController } from './Controllers/LoggerController';
import requiredParameter from './requiredParameter';
// Mutate the Parse object to add the Cloud Code handlers // Mutate the Parse object to add the Cloud Code handlers
addParseCloud(); addParseCloud();
@@ -65,8 +66,8 @@ addParseCloud();
// "push": optional key from configure push // "push": optional key from configure push
function ParseServer({ function ParseServer({
appId, appId = requiredParameter('You must provide an appId!'),
masterKey, masterKey = requiredParameter('You must provide a masterKey!'),
databaseAdapter, databaseAdapter,
filesAdapter, filesAdapter,
push, push,
@@ -82,13 +83,9 @@ function ParseServer({
facebookAppIds = [], facebookAppIds = [],
enableAnonymousUsers = true, enableAnonymousUsers = true,
oauth = {}, oauth = {},
serverURL = '', serverURL = requiredParameter('You must provide a serverURL!'),
maxUploadSize = '20mb' maxUploadSize = '20mb'
}) { }) {
if (!appId || !masterKey) {
throw 'You must provide an appId and masterKey!';
}
if (databaseAdapter) { if (databaseAdapter) {
DatabaseAdapter.setAdapter(databaseAdapter); DatabaseAdapter.setAdapter(databaseAdapter);
} }
@@ -106,8 +103,8 @@ function ParseServer({
throw "argument 'cloud' must either be a string or a function"; throw "argument 'cloud' must either be a string or a function";
} }
} }
const filesControllerAdapter = loadAdapter(filesAdapter, GridStoreAdapter); const filesControllerAdapter = loadAdapter(filesAdapter, GridStoreAdapter);
const pushControllerAdapter = loadAdapter(push, ParsePushAdapter); const pushControllerAdapter = loadAdapter(push, ParsePushAdapter);
const loggerControllerAdapter = loadAdapter(loggerAdapter, FileLoggerAdapter); const loggerControllerAdapter = loadAdapter(loggerAdapter, FileLoggerAdapter);
@@ -117,7 +114,7 @@ function ParseServer({
const filesController = new FilesController(filesControllerAdapter); const filesController = new FilesController(filesControllerAdapter);
const pushController = new PushController(pushControllerAdapter); const pushController = new PushController(pushControllerAdapter);
const loggerController = new LoggerController(loggerControllerAdapter); const loggerController = new LoggerController(loggerControllerAdapter);
cache.apps[appId] = { cache.apps[appId] = {
masterKey: masterKey, masterKey: masterKey,
collectionPrefix: collectionPrefix, collectionPrefix: collectionPrefix,
@@ -175,7 +172,7 @@ function ParseServer({
new LogsRouter(), new LogsRouter(),
new IAPValidationRouter() new IAPValidationRouter()
]; ];
if (process.env.PARSE_EXPERIMENTAL_CONFIG_ENABLED || process.env.TESTING) { if (process.env.PARSE_EXPERIMENTAL_CONFIG_ENABLED || process.env.TESTING) {
routers.push(require('./global_config')); routers.push(require('./global_config'));
} }

2
src/requiredParameter.js Normal file
View File

@@ -0,0 +1,2 @@
/* @flow */
export default (errorMessage: string) => {throw errorMessage}