UNPKG

connect-platform-test

Version:

A platform to build backened code mostly in a visual manner.

54 lines (44 loc) 1.55 kB
const fs = require('fs'); const path = require('path'); const platform = require('../../'); const config = require('./config'); const files = require('./util/file-io'); platform.core.node({ path : `${config.path}delete/:id`, public : config.expose, method : 'DELETE', inputs : ['id'], controlOutputs : ['deleted', 'no_directory_set', 'internal_error'], }, (inputs, _, control) => { if (!config.directory) control('no_directory_set'); let pathmapfile = path.join(config.directory, config.files.pathmap); files.json.load(pathmapfile, {}) .then(pathmap => { let paths = Object.entries(pathmap) .filter(entry => entry[1] == inputs.id) .map(entry => entry[0]) .forEach(path => { delete pathmap[path]; }); files.json.save(pathmapfile, pathmap); let confile = path.join(config.directory, config.files.conf); files.json.load(confile, { nodes: { json: [] }, }).then(conf => { let relativeNodeFile = path.join(config.files.nodedir, inputs.id); conf.nodes.json = conf.nodes.json.filter(addr => addr != relativeNodeFile); files.json.save(confile, conf); let nodefile = path.join(config.directory, relativeNodeFile + '.json'); fs.unlink(nodefile, err => { if (err) { console.log(err); control('internal_error'); } else control('deleted'); }); }); }) .catch(error => { console.log(error); control('internal_error'); }); });