Skip to content

Commit 0cf3f56

Browse files
committed
Remove dependency from DatabaseAdapter on cache.js.
1 parent 49b01c9 commit 0cf3f56

8 files changed

+40
-32
lines changed

spec/ParseAPI.spec.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -384,7 +384,7 @@ describe('miscellaneous', function() {
384384
obj.set('foo', 'bar');
385385
return obj.save();
386386
}).then(() => {
387-
var db = DatabaseAdapter.getDatabaseConnection(appId);
387+
var db = DatabaseAdapter.getDatabaseConnection(appId, 'test_');
388388
return db.mongoFind('TestObject', {}, {});
389389
}).then((results) => {
390390
expect(results.length).toEqual(1);

spec/ParseGlobalConfig.spec.js

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
1+
'use strict';
12

23
var request = require('request');
34
var Parse = require('parse/node').Parse;
45
var DatabaseAdapter = require('../src/DatabaseAdapter');
56

6-
var database = DatabaseAdapter.getDatabaseConnection('test');
7+
let database = DatabaseAdapter.getDatabaseConnection('test', 'test_');
78

89
describe('a GlobalConfig', () => {
910
beforeEach(function(done) {

spec/ParseInstallation.spec.js

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
'use strict';
12
// These tests check the Installations functionality of the REST API.
23
// Ported from installation_collection_test.go
34

@@ -9,7 +10,7 @@ var Parse = require('parse/node').Parse;
910
var rest = require('../src/rest');
1011

1112
var config = new Config('test');
12-
var database = DatabaseAdapter.getDatabaseConnection('test');
13+
let database = DatabaseAdapter.getDatabaseConnection('test', 'test_');
1314

1415
describe('Installations', () => {
1516

spec/RestCreate.spec.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ var rest = require('../src/rest');
88
var request = require('request');
99

1010
var config = new Config('test');
11-
var database = DatabaseAdapter.getDatabaseConnection('test');
11+
var database = DatabaseAdapter.getDatabaseConnection('test', 'test_');
1212

1313
describe('rest create', () => {
1414
it('handles _id', (done) => {

src/Config.js

+5-7
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,10 @@
55
import cache from './cache';
66

77
export class Config {
8+
constructor(applicationId: string, mount: string) {
9+
let DatabaseAdapter = require('./DatabaseAdapter');
810

9-
constructor(applicationId, mount) {
10-
11-
var DatabaseAdapter = require('./DatabaseAdapter');
12-
13-
var cacheInfo = cache.apps[applicationId];
11+
let cacheInfo = cache.apps[applicationId];
1412
this.valid = !!cacheInfo;
1513
if (!this.valid) {
1614
return;
@@ -27,7 +25,7 @@ export class Config {
2725
this.facebookAppIds = cacheInfo.facebookAppIds;
2826
this.enableAnonymousUsers = cacheInfo.enableAnonymousUsers;
2927
this.allowClientClassCreation = cacheInfo.allowClientClassCreation;
30-
this.database = DatabaseAdapter.getDatabaseConnection(applicationId);
28+
this.database = DatabaseAdapter.getDatabaseConnection(applicationId, this.collectionPrefix);
3129
this.hooksController = cacheInfo.hooksController;
3230
this.filesController = cacheInfo.filesController;
3331
this.pushController = cacheInfo.pushController;
@@ -36,7 +34,7 @@ export class Config {
3634

3735
this.mount = mount;
3836
}
39-
};
37+
}
4038

4139
export default Config;
4240
module.exports = Config;

src/Controllers/HooksController.js

+23-15
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,31 @@
1-
var DatabaseAdapter = require('../DatabaseAdapter'),
2-
triggers = require('../triggers'),
3-
request = require('request');
4-
const collection = "_Hooks";
1+
/** @flow weak */
2+
3+
import * as DatabaseAdapter from "../DatabaseAdapter";
4+
import * as triggers from "../triggers";
5+
import * as Parse from "parse/node";
6+
import * as request from "request";
7+
8+
const DefaultHooksCollectionName = "_Hooks";
59

610
export class HooksController {
7-
8-
constructor(applicationId) {
9-
this.applicationId = applicationId;
11+
_applicationId: string;
12+
_collectionPrefix: string;
13+
_collection;
14+
15+
constructor(applicationId: string, collectionPrefix: string = '') {
16+
this._applicationId = applicationId;
17+
this._collectionPrefix = collectionPrefix;
1018
}
1119

1220
database() {
13-
return DatabaseAdapter.getDatabaseConnection(this.applicationId);
21+
return DatabaseAdapter.getDatabaseConnection(this._applicationId, this._collectionPrefix);
1422
}
1523

1624
collection() {
1725
if (this._collection) {
1826
return Promise.resolve(this._collection)
1927
}
20-
return this.database().rawCollection(collection).then((collection) => {
28+
return this.database().rawCollection(DefaultHooksCollectionName).then((collection) => {
2129
this._collection = collection;
2230
return collection;
2331
});
@@ -40,12 +48,12 @@ export class HooksController {
4048
}
4149

4250
deleteFunction(functionName) {
43-
triggers.removeFunction(functionName, this.applicationId);
51+
triggers.removeFunction(functionName, this._applicationId);
4452
return this.delete({functionName: functionName});
4553
}
4654

4755
deleteTrigger(className, triggerName) {
48-
triggers.removeTrigger(triggerName, className, this.applicationId);
56+
triggers.removeTrigger(triggerName, className, this._applicationId);
4957
return this.delete({className: className, triggerName: triggerName});
5058
}
5159

@@ -60,15 +68,15 @@ export class HooksController {
6068
getOne(query) {
6169
return this.collection()
6270
.then(coll => coll.findOne(query, {_id: 0}))
63-
.then(hook => {
71+
.then(hook => {
6472
return hook;
6573
});
6674
}
6775

6876
get(query) {
6977
return this.collection()
7078
.then(coll => coll.find(query, {_id: 0}).toArray())
71-
.then(hooks => {
79+
.then(hooks => {
7280
return hooks;
7381
});
7482
}
@@ -102,9 +110,9 @@ export class HooksController {
102110
var wrappedFunction = wrapToHTTPRequest(hook);
103111
wrappedFunction.url = hook.url;
104112
if (hook.className) {
105-
triggers.addTrigger(hook.triggerName, hook.className, wrappedFunction, this.applicationId)
113+
triggers.addTrigger(hook.triggerName, hook.className, wrappedFunction, this._applicationId)
106114
} else {
107-
triggers.addFunction(hook.functionName, wrappedFunction, null, this.applicationId);
115+
triggers.addFunction(hook.functionName, wrappedFunction, null, this._applicationId);
108116
}
109117
}
110118

src/DatabaseAdapter.js

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
/** @flow weak */
12
// Database Adapter
23
//
34
// Allows you to change the underlying database.
@@ -13,7 +14,6 @@
1314
// * This list is incomplete and the database process is not fully modularized.
1415
//
1516
// Default is ExportAdapter, which uses mongo.
16-
import cache from './cache';
1717

1818
var ExportAdapter = require('./ExportAdapter');
1919

@@ -40,14 +40,14 @@ function clearDatabaseURIs() {
4040
dbConnections = {};
4141
}
4242

43-
function getDatabaseConnection(appId) {
43+
function getDatabaseConnection(appId: string, collectionPrefix: string) {
4444
if (dbConnections[appId]) {
4545
return dbConnections[appId];
4646
}
4747

4848
var dbURI = (appDatabaseURIs[appId] ? appDatabaseURIs[appId] : databaseURI);
4949
dbConnections[appId] = new adapter(dbURI, {
50-
collectionPrefix: cache.apps[appId]['collectionPrefix']
50+
collectionPrefix: collectionPrefix
5151
});
5252
dbConnections[appId].connect();
5353
return dbConnections[appId];
@@ -59,5 +59,5 @@ module.exports = {
5959
setAdapter: setAdapter,
6060
setDatabaseURI: setDatabaseURI,
6161
setAppDatabaseURI: setAppDatabaseURI,
62-
clearDatabaseURIs: clearDatabaseURIs,
62+
clearDatabaseURIs: clearDatabaseURIs
6363
};

src/index.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,7 @@ function ParseServer({
124124
const filesController = new FilesController(filesControllerAdapter);
125125
const pushController = new PushController(pushControllerAdapter);
126126
const loggerController = new LoggerController(loggerControllerAdapter);
127-
const hooksController = new HooksController(appId);
127+
const hooksController = new HooksController(appId, collectionPrefix);
128128

129129
cache.apps[appId] = {
130130
masterKey: masterKey,
@@ -141,7 +141,7 @@ function ParseServer({
141141
hooksController: hooksController,
142142
enableAnonymousUsers: enableAnonymousUsers,
143143
allowClientClassCreation: allowClientClassCreation,
144-
oauth: oauth,
144+
oauth: oauth
145145
};
146146

147147
// To maintain compatibility. TODO: Remove in v2.1

0 commit comments

Comments
 (0)