From 0f0c53f659de8a325c29f3a5385808bd56d564e4 Mon Sep 17 00:00:00 2001 From: haydenyoung Date: Tue, 26 Mar 2019 23:48:38 +0800 Subject: [PATCH 1/3] Delete a database. --- src/lib/db-manager.js | 5 ++++- src/lib/orbitdb-api.js | 14 ++++++++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/src/lib/db-manager.js b/src/lib/db-manager.js index 934a60c..7e4fa78 100644 --- a/src/lib/db-manager.js +++ b/src/lib/db-manager.js @@ -16,6 +16,10 @@ class DBManager { } }; + this.db_list_remove = (dbname) => { + delete _dbs[dbname]; + } + this.db_list = () => { let db_info_list = {}; for (var dbn in _dbs) { @@ -50,4 +54,3 @@ class DBManager { } module.exports = DBManager; - diff --git a/src/lib/orbitdb-api.js b/src/lib/orbitdb-api.js index 3de3b9e..29e5a28 100644 --- a/src/lib/orbitdb-api.js +++ b/src/lib/orbitdb-api.js @@ -41,6 +41,20 @@ class OrbitdbAPI extends Express { } }); + this.delete('/db/:dbname', asyncMiddleware( async (req, res, next) => { + let db + db = await dbm.get(req.params.dbname) + + try { + await db.drop() + dbm.db_list_remove(req.params.dbname) + return res.json('') + } catch (err) { + console.log(err) + next(err) + } + })) + this.delete('/db/:dbname/:item', asyncMiddleware( async (req, res, next) => { let db, hash db = await dbm.get(req.params.dbname) From c6c034bf0fa0616a4724080015b3300c990c3709 Mon Sep 17 00:00:00 2001 From: haydenyoung Date: Fri, 29 Mar 2019 18:52:30 +0800 Subject: [PATCH 2/3] Allow middleware wrapper to catch any errors. --- src/lib/orbitdb-api.js | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/src/lib/orbitdb-api.js b/src/lib/orbitdb-api.js index 29e5a28..d448ae9 100644 --- a/src/lib/orbitdb-api.js +++ b/src/lib/orbitdb-api.js @@ -45,14 +45,9 @@ class OrbitdbAPI extends Express { let db db = await dbm.get(req.params.dbname) - try { - await db.drop() - dbm.db_list_remove(req.params.dbname) - return res.json('') - } catch (err) { - console.log(err) - next(err) - } + await db.drop() + dbm.db_list_remove(req.params.dbname) + return res.json('') })) this.delete('/db/:dbname/:item', asyncMiddleware( async (req, res, next) => { From ff5b1b8ea21c6a224c9c338b9b950f5f513ba13d Mon Sep 17 00:00:00 2001 From: haydenyoung Date: Fri, 29 Mar 2019 20:00:10 +0800 Subject: [PATCH 3/3] Docs for db delete. --- README.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/README.md b/README.md index 914f5c2..3328847 100644 --- a/README.md +++ b/README.md @@ -297,6 +297,14 @@ curl -X POST http://localhost:3000/db/counter/inc/100 zdpuAmHw9Tcc4pyVjcVX3rJNJ7SGffmu4EwjodzmaPBVGGzbd ``` +### DELETE /db/:dbname + +Deletes the local database :dbname. This does not delete any data from peers. + +```shell +curl -X DELETE http://localhost:3000/db/docstore +``` + ### DELETE /db/:dbname/:item Deletes the item specified by :item from the database :dbname.