Skip to content

Commit

Permalink
fix: custom database options are not passed to MongoDB GridFS (#7911)
Browse files Browse the repository at this point in the history
  • Loading branch information
dblythy authored and mtrezza committed May 1, 2022
1 parent a169663 commit b1e5565
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 2 deletions.
14 changes: 14 additions & 0 deletions spec/FilesController.spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,20 @@ describe('FilesController', () => {
done();
});

it_only_db('mongo')('should pass databaseOptions to GridFSBucketAdapter', async () => {
await reconfigureServer({
databaseURI: 'mongodb://localhost:27017/parse',
filesAdapter: null,
databaseAdapter: null,
databaseOptions: {
retryWrites: true,
},
});
const config = Config.get(Parse.applicationId);
expect(config.database.adapter._mongoOptions.retryWrites).toBeTrue();
expect(config.filesController.adapter._mongoOptions.retryWrites).toBeTrue();
});

it('should create a server log on failure', done => {
const logController = new LoggerController(new WinstonLoggerAdapter());

Expand Down
12 changes: 10 additions & 2 deletions src/Controllers/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -91,12 +91,20 @@ export function getLoggerController(options: ParseServerOptions): LoggerControll
}

export function getFilesController(options: ParseServerOptions): FilesController {
const { appId, databaseURI, filesAdapter, databaseAdapter, preserveFileName, fileKey } = options;
const {
appId,
databaseURI,
databaseOptions = {},
filesAdapter,
databaseAdapter,
preserveFileName,
fileKey,
} = options;
if (!filesAdapter && databaseAdapter) {
throw 'When using an explicit database adapter, you must also use an explicit filesAdapter.';
}
const filesControllerAdapter = loadAdapter(filesAdapter, () => {
return new GridFSBucketAdapter(databaseURI, {}, fileKey);
return new GridFSBucketAdapter(databaseURI, databaseOptions, fileKey);
});
return new FilesController(filesControllerAdapter, appId, {
preserveFileName,
Expand Down

0 comments on commit b1e5565

Please sign in to comment.