You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					33 lines
				
				894 B
			
		
		
			
		
	
	
					33 lines
				
				894 B
			| 
								 
											3 years ago
										 
									 | 
							
								'use strict';
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								const OperationBase = require('./operation').OperationBase;
							 | 
						||
| 
								 | 
							
								const handleCallback = require('../utils').handleCallback;
							 | 
						||
| 
								 | 
							
								const MongoError = require('../core').MongoError;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								class OptionsOperation extends OperationBase {
							 | 
						||
| 
								 | 
							
								  constructor(collection, options) {
							 | 
						||
| 
								 | 
							
								    super(options);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    this.collection = collection;
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  execute(callback) {
							 | 
						||
| 
								 | 
							
								    const coll = this.collection;
							 | 
						||
| 
								 | 
							
								    const opts = this.options;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    coll.s.db.listCollections({ name: coll.collectionName }, opts).toArray((err, collections) => {
							 | 
						||
| 
								 | 
							
								      if (err) return handleCallback(callback, err);
							 | 
						||
| 
								 | 
							
								      if (collections.length === 0) {
							 | 
						||
| 
								 | 
							
								        return handleCallback(
							 | 
						||
| 
								 | 
							
								          callback,
							 | 
						||
| 
								 | 
							
								          MongoError.create({ message: `collection ${coll.namespace} not found`, driver: true })
							 | 
						||
| 
								 | 
							
								        );
							 | 
						||
| 
								 | 
							
								      }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								      handleCallback(callback, err, collections[0].options || null);
							 | 
						||
| 
								 | 
							
								    });
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								module.exports = OptionsOperation;
							 |