From 7215300c1ed224a76c832287d021d3dead4d6292 Mon Sep 17 00:00:00 2001 From: Nikita Lutsenko Date: Sat, 27 Feb 2016 02:37:38 -0800 Subject: [PATCH] Move Mongo database property directly to mongo adapter. --- spec/Schema.spec.js | 10 +++++----- spec/schemas.spec.js | 4 ++-- src/Adapters/Files/GridStoreAdapter.js | 8 ++++---- src/Controllers/DatabaseController.js | 13 +++---------- src/Routers/SchemasRouter.js | 4 ++-- 5 files changed, 16 insertions(+), 23 deletions(-) diff --git a/spec/Schema.spec.js b/spec/Schema.spec.js index ca427792..6a02009f 100644 --- a/spec/Schema.spec.js +++ b/spec/Schema.spec.js @@ -520,11 +520,11 @@ describe('Schema', () => { return obj2.save(); }) .then(() => { - config.database.db.collection('test__Join:aRelation:HasPointersAndRelations', { strict: true }, (err, coll) => { + config.database.adapter.database.collection('test__Join:aRelation:HasPointersAndRelations', { strict: true }, (err, coll) => { expect(err).toEqual(null); config.database.loadSchema() - .then(schema => schema.deleteField('aRelation', 'HasPointersAndRelations', config.database.db, 'test_')) - .then(() => config.database.db.collection('test__Join:aRelation:HasPointersAndRelations', { strict: true }, (err, coll) => { + .then(schema => schema.deleteField('aRelation', 'HasPointersAndRelations', config.database.adapter.database, 'test_')) + .then(() => config.database.adapter.database.collection('test__Join:aRelation:HasPointersAndRelations', { strict: true }, (err, coll) => { expect(err).not.toEqual(null); done(); })) @@ -538,7 +538,7 @@ describe('Schema', () => { var obj2 = hasAllPODobject(); var p = Parse.Object.saveAll([obj1, obj2]) .then(() => config.database.loadSchema()) - .then(schema => schema.deleteField('aString', 'HasAllPOD', config.database.db, 'test_')) + .then(schema => schema.deleteField('aString', 'HasAllPOD', config.database.adapter.database, 'test_')) .then(() => new Parse.Query('HasAllPOD').get(obj1.id)) .then(obj1Reloaded => { expect(obj1Reloaded.get('aString')).toEqual(undefined); @@ -568,7 +568,7 @@ describe('Schema', () => { expect(obj1.get('aPointer').id).toEqual(obj1.id); }) .then(() => config.database.loadSchema()) - .then(schema => schema.deleteField('aPointer', 'NewClass', config.database.db, 'test_')) + .then(schema => schema.deleteField('aPointer', 'NewClass', config.database.adapter.database, 'test_')) .then(() => new Parse.Query('NewClass').get(obj1.id)) .then(obj1 => { expect(obj1.get('aPointer')).toEqual(undefined); diff --git a/spec/schemas.spec.js b/spec/schemas.spec.js index 1a6a3069..36ba7637 100644 --- a/spec/schemas.spec.js +++ b/spec/schemas.spec.js @@ -710,10 +710,10 @@ describe('schemas', () => { }, (error, response, body) => { expect(response.statusCode).toEqual(200); expect(response.body).toEqual({}); - config.database.db.collection('test__Join:aRelation:MyOtherClass', { strict: true }, (err, coll) => { + config.database.adapter.database.collection('test__Join:aRelation:MyOtherClass', { strict: true }, (err, coll) => { //Expect Join table to be gone expect(err).not.toEqual(null); - config.database.db.collection('test_MyOtherClass', { strict: true }, (err, coll) => { + config.database.adapter.database.collection('test_MyOtherClass', { strict: true }, (err, coll) => { // Expect data table to be gone expect(err).not.toEqual(null); request.get({ diff --git a/src/Adapters/Files/GridStoreAdapter.js b/src/Adapters/Files/GridStoreAdapter.js index 21934c9a..00fd37bc 100644 --- a/src/Adapters/Files/GridStoreAdapter.js +++ b/src/Adapters/Files/GridStoreAdapter.js @@ -11,7 +11,7 @@ export class GridStoreAdapter extends FilesAdapter { // Returns a promise createFile(config, filename, data) { return config.database.connect().then(() => { - let gridStore = new GridStore(config.database.db, filename, 'w'); + let gridStore = new GridStore(config.database.adapter.database, filename, 'w'); return gridStore.open(); }).then((gridStore) => { return gridStore.write(data); @@ -22,7 +22,7 @@ export class GridStoreAdapter extends FilesAdapter { deleteFile(config, filename) { return config.database.connect().then(() => { - let gridStore = new GridStore(config.database.db, filename, 'w'); + let gridStore = new GridStore(config.database.adapter.database, filename, 'w'); return gridStore.open(); }).then((gridStore) => { return gridStore.unlink(); @@ -33,9 +33,9 @@ export class GridStoreAdapter extends FilesAdapter { getFileData(config, filename) { return config.database.connect().then(() => { - return GridStore.exist(config.database.db, filename); + return GridStore.exist(config.database.adapter.database, filename); }).then(() => { - let gridStore = new GridStore(config.database.db, filename, 'r'); + let gridStore = new GridStore(config.database.adapter.database, filename, 'r'); return gridStore.open(); }).then((gridStore) => { return gridStore.read(); diff --git a/src/Controllers/DatabaseController.js b/src/Controllers/DatabaseController.js index ca1033e9..626c7644 100644 --- a/src/Controllers/DatabaseController.js +++ b/src/Controllers/DatabaseController.js @@ -24,15 +24,8 @@ function DatabaseController(adapter, { collectionPrefix } = {}) { // Connects to the database. Returns a promise that resolves when the // connection is successful. -// this.db will be populated with a Mongo "Db" object when the -// promise resolves successfully. DatabaseController.prototype.connect = function() { - if (this.adapter.connectionPromise) { - return this.adapter.connectionPromise; - } - return this.adapter.connect().then(() => { - this.db = this.adapter.database; - }); + return this.adapter.connect(); }; // Returns a promise for a Mongo collection. @@ -47,7 +40,7 @@ DatabaseController.prototype.collection = function(className) { DatabaseController.prototype.rawCollection = function(className) { return this.connect().then(() => { - return this.db.collection(this.collectionPrefix + className); + return this.adapter.database.collection(this.collectionPrefix + className); }); }; @@ -353,7 +346,7 @@ DatabaseController.prototype.deleteEverything = function() { this.schemaPromise = null; return this.connect().then(() => { - return this.db.collections(); + return this.adapter.database.collections(); }).then((colls) => { var promises = []; for (var coll of colls) { diff --git a/src/Routers/SchemasRouter.js b/src/Routers/SchemasRouter.js index d7388158..a748ad14 100644 --- a/src/Routers/SchemasRouter.js +++ b/src/Routers/SchemasRouter.js @@ -164,7 +164,7 @@ function modifySchema(req) { .then(() => schema.deleteField( submittedFieldName, className, - req.config.database.db, + req.config.database.adapter.database, req.config.database.collectionPrefix )); deletionPromises.push(promise); @@ -246,7 +246,7 @@ function deleteSchema(req) { //tried to delete non-existant class resolve({ response: {}}); } else { - removeJoinTables(req.config.database.db, req.config.database.collectionPrefix, doc.value) + removeJoinTables(req.config.database.adapter.database, req.config.database.collectionPrefix, doc.value) .then(resolve, reject); } });