UNPKG

2.21 kBJavaScriptView Raw
1var express = require('express');
2var router = express.Router();
3var _ = require('lodash');
4var common = require('./common');
5
6// runs on all routes and checks password if one is setup
7router.all('/db/*', common.checkLogin, function (req, res, next){
8 next();
9});
10
11// create a new database
12router.post('/database/:conn/db_create', function (req, res, next){
13 var connection_list = req.app.locals.dbConnections;
14
15 // Check for existance of connection
16 if(connection_list[req.params.conn] === undefined){
17 res.status(400).json({'msg': req.i18n.__('Invalid connection')});
18 return;
19 }
20
21 // check for valid DB name
22 if(req.body.db_name.indexOf(' ') >= 0 || req.body.db_name.indexOf('.') >= 0){
23 res.status(400).json({'msg': req.i18n.__('Invalid database name')});
24 return;
25 }
26
27 // Get DB form pool
28 var mongo_db = connection_list[req.params.conn].native.db(req.body.db_name);
29
30 // adding a new collection to create the DB
31 mongo_db.collection('test').save({}, function (err, docs){
32 if(err){
33 console.error('Error creating database: ' + err);
34 res.status(400).json({'msg': req.i18n.__('Error creating database') + ': ' + err});
35 }else{
36 res.status(200).json({'msg': req.i18n.__('Database successfully created')});
37 }
38 });
39});
40
41// delete a database
42router.post('/database/:conn/db_delete', function (req, res, next){
43 var connection_list = req.app.locals.dbConnections;
44
45 // Check for existance of connection
46 if(connection_list[req.params.conn] === undefined){
47 res.status(400).json({'msg': req.i18n.__('Invalid connection')});
48 }
49
50 // Get DB form pool
51 var mongo_db = connection_list[req.params.conn].native.db(req.body.db_name);
52
53 // delete a collection
54 mongo_db.dropDatabase(function (err, result){
55 if(err){
56 console.error('Error deleting database: ' + err);
57 res.status(400).json({'msg': req.i18n.__('Error deleting database') + ': ' + err});
58 }else{
59 res.status(200).json({'msg': req.i18n.__('Database successfully deleted'), 'db_name': req.body.db_name});
60 }
61 });
62});
63
64module.exports = router;