123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124 |
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.Admin = void 0;
- const add_user_1 = require("./operations/add_user");
- const execute_operation_1 = require("./operations/execute_operation");
- const list_databases_1 = require("./operations/list_databases");
- const remove_user_1 = require("./operations/remove_user");
- const run_command_1 = require("./operations/run_command");
- const validate_collection_1 = require("./operations/validate_collection");
- const utils_1 = require("./utils");
- /**
- * The **Admin** class is an internal class that allows convenient access to
- * the admin functionality and commands for MongoDB.
- *
- * **ADMIN Cannot directly be instantiated**
- * @public
- *
- * @example
- * ```js
- * const MongoClient = require('mongodb').MongoClient;
- * const test = require('assert');
- * // Connection url
- * const url = 'mongodb://localhost:27017';
- * // Database Name
- * const dbName = 'test';
- *
- * // Connect using MongoClient
- * MongoClient.connect(url, function(err, client) {
- * // Use the admin database for the operation
- * const adminDb = client.db(dbName).admin();
- *
- * // List all the available databases
- * adminDb.listDatabases(function(err, dbs) {
- * expect(err).to.not.exist;
- * test.ok(dbs.databases.length > 0);
- * client.close();
- * });
- * });
- * ```
- */
- class Admin {
- /**
- * Create a new Admin instance
- * @internal
- */
- constructor(db) {
- this.s = { db };
- }
- command(command, options, callback) {
- if (typeof options === 'function')
- (callback = options), (options = {});
- options = Object.assign({ dbName: 'admin' }, options);
- return (0, execute_operation_1.executeOperation)((0, utils_1.getTopology)(this.s.db), new run_command_1.RunCommandOperation(this.s.db, command, options), callback);
- }
- buildInfo(options, callback) {
- if (typeof options === 'function')
- (callback = options), (options = {});
- options = options !== null && options !== void 0 ? options : {};
- return this.command({ buildinfo: 1 }, options, callback);
- }
- serverInfo(options, callback) {
- if (typeof options === 'function')
- (callback = options), (options = {});
- options = options !== null && options !== void 0 ? options : {};
- return this.command({ buildinfo: 1 }, options, callback);
- }
- serverStatus(options, callback) {
- if (typeof options === 'function')
- (callback = options), (options = {});
- options = options !== null && options !== void 0 ? options : {};
- return this.command({ serverStatus: 1 }, options, callback);
- }
- ping(options, callback) {
- if (typeof options === 'function')
- (callback = options), (options = {});
- options = options !== null && options !== void 0 ? options : {};
- return this.command({ ping: 1 }, options, callback);
- }
- addUser(username, password, options, callback) {
- if (typeof password === 'function') {
- (callback = password), (password = undefined), (options = {});
- }
- else if (typeof password !== 'string') {
- if (typeof options === 'function') {
- (callback = options), (options = password), (password = undefined);
- }
- else {
- (options = password), (callback = undefined), (password = undefined);
- }
- }
- else {
- if (typeof options === 'function')
- (callback = options), (options = {});
- }
- options = Object.assign({ dbName: 'admin' }, options);
- return (0, execute_operation_1.executeOperation)((0, utils_1.getTopology)(this.s.db), new add_user_1.AddUserOperation(this.s.db, username, password, options), callback);
- }
- removeUser(username, options, callback) {
- if (typeof options === 'function')
- (callback = options), (options = {});
- options = Object.assign({ dbName: 'admin' }, options);
- return (0, execute_operation_1.executeOperation)((0, utils_1.getTopology)(this.s.db), new remove_user_1.RemoveUserOperation(this.s.db, username, options), callback);
- }
- validateCollection(collectionName, options, callback) {
- if (typeof options === 'function')
- (callback = options), (options = {});
- options = options !== null && options !== void 0 ? options : {};
- return (0, execute_operation_1.executeOperation)((0, utils_1.getTopology)(this.s.db), new validate_collection_1.ValidateCollectionOperation(this, collectionName, options), callback);
- }
- listDatabases(options, callback) {
- if (typeof options === 'function')
- (callback = options), (options = {});
- options = options !== null && options !== void 0 ? options : {};
- return (0, execute_operation_1.executeOperation)((0, utils_1.getTopology)(this.s.db), new list_databases_1.ListDatabasesOperation(this.s.db, options), callback);
- }
- replSetGetStatus(options, callback) {
- if (typeof options === 'function')
- (callback = options), (options = {});
- options = options !== null && options !== void 0 ? options : {};
- return this.command({ replSetGetStatus: 1 }, options, callback);
- }
- }
- exports.Admin = Admin;
- //# sourceMappingURL=admin.js.map
|