diff --git a/public/app/listeners/deleteSpace.js b/public/app/listeners/deleteSpace.js new file mode 100644 index 00000000..402b34a8 --- /dev/null +++ b/public/app/listeners/deleteSpace.js @@ -0,0 +1,20 @@ +const rimraf = require('rimraf'); + +const { SPACES_COLLECTION } = require('../db'); +const { DELETED_SPACE_CHANNEL } = require('../config/channels'); +const { VAR_FOLDER } = require('../config/config'); +const { ERROR_GENERAL } = require('../config/errors'); + +const deleteSpace = (mainWindow, db) => async (event, { id }) => { + try { + db.get(SPACES_COLLECTION) + .remove({ id }) + .write(); + rimraf.sync(`${VAR_FOLDER}/${id}`); + mainWindow.webContents.send(DELETED_SPACE_CHANNEL); + } catch (err) { + mainWindow.webContents.send(DELETED_SPACE_CHANNEL, ERROR_GENERAL); + } +}; + +module.exports = deleteSpace; diff --git a/public/app/listeners/index.js b/public/app/listeners/index.js index 50f7e46e..8ad392ff 100644 --- a/public/app/listeners/index.js +++ b/public/app/listeners/index.js @@ -2,6 +2,7 @@ const loadSpace = require('./loadSpace'); const saveSpace = require('./saveSpace'); const getSpace = require('./getSpace'); const getSpaces = require('./getSpaces'); +const deleteSpace = require('./deleteSpace'); const showSyncSpacePrompt = require('./showSyncSpacePrompt'); const syncSpace = require('./syncSpace'); @@ -12,4 +13,5 @@ module.exports = { getSpaces, showSyncSpacePrompt, syncSpace, + deleteSpace, }; diff --git a/public/electron.js b/public/electron.js index ab708456..07766936 100644 --- a/public/electron.js +++ b/public/electron.js @@ -10,7 +10,6 @@ const { const path = require('path'); const isDev = require('electron-is-dev'); const fs = require('fs'); -const rimraf = require('rimraf'); const archiver = require('archiver'); const ObjectId = require('bson-objectid'); const { autoUpdater } = require('electron-updater'); @@ -34,7 +33,6 @@ const { EXPORT_SPACE_CHANNEL, EXPORTED_SPACE_CHANNEL, DELETE_SPACE_CHANNEL, - DELETED_SPACE_CHANNEL, GET_SPACE_CHANNEL, GET_SPACES_CHANNEL, RESPOND_EXPORT_SPACE_PROMPT_CHANNEL, @@ -67,6 +65,7 @@ const { showSyncSpacePrompt, syncSpace, getSpace, + deleteSpace, } = require('./app/listeners'); // add keys to process @@ -253,17 +252,7 @@ app.on('ready', async () => { ipcMain.on(GET_SPACES_CHANNEL, getSpaces(mainWindow, db)); // called when deleting a space - ipcMain.on(DELETE_SPACE_CHANNEL, async (event, { id }) => { - try { - db.get(SPACES_COLLECTION) - .remove({ id }) - .write(); - rimraf.sync(`${VAR_FOLDER}/${id}`); - mainWindow.webContents.send(DELETED_SPACE_CHANNEL); - } catch (err) { - mainWindow.webContents.send(DELETED_SPACE_CHANNEL, ERROR_GENERAL); - } - }); + ipcMain.on(DELETE_SPACE_CHANNEL, deleteSpace(mainWindow, db)); // called when loading a space ipcMain.on(LOAD_SPACE_CHANNEL, loadSpace(mainWindow, db));