From 2dc080fd00f90ea3e03cd6cdc56aaa2e3e99ad8a Mon Sep 17 00:00:00 2001 From: Drew Gross Date: Tue, 23 Feb 2016 12:54:20 -0800 Subject: [PATCH] Require a server URL --- spec/index.spec.js | 5 +++-- src/index.js | 25 +++++++++++-------------- src/requiredParameter.js | 2 ++ 3 files changed, 16 insertions(+), 16 deletions(-) create mode 100644 src/requiredParameter.js diff --git a/spec/index.spec.js b/spec/index.spec.js index 0e3eba5d..8b558089 100644 --- a/spec/index.spec.js +++ b/spec/index.spec.js @@ -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(); }); diff --git a/src/index.js b/src/index.js index 38d6a044..09873184 100644 --- a/src/index.js +++ b/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')); } diff --git a/src/requiredParameter.js b/src/requiredParameter.js new file mode 100644 index 00000000..0355285c --- /dev/null +++ b/src/requiredParameter.js @@ -0,0 +1,2 @@ +/* @flow */ +export default (errorMessage: string) => {throw errorMessage}