basically:
app.get('/notes', (req, res) => { const rawNotesList = fs.readFileSync('../cli/notes.json', {encoding: 'utf8', flag: 'r'}); const parsedNotesList = JSON.parse(rawNotesList); const links = [ { rel: ["self"], href: [baseUrl, '/notes'].join('') } ]; const actions = [ { class: "add-note", href: [baseUrl, '/notes'].join(''), method: 'POST', fields: [ { name: "command", type: "string" }, { name: "content", type: "string" } ] } ]; const responseWithControlData = { class: "note", ...parsedNotesList, links: links, actions: actions }; res.json(responseWithControlData); });
and:
app.post('/notes', (req, res) => { const body = req.body; if (!body.command.includes('add')) { return res.status(400).json({ status: 'failed to add content', content: body.content }); } const cliCapture = new CliCapture({ notesPath: './notes.json', command: body.command, content: body.content }); res.json({ status: 'added from server' }); });
We could analogize this CoAP/CoRE and Amundsen's DARRT approach: anything really can substitute for "CliCapture" and wherever fs
is available, we can expand its capabilities with a resource directory mapping to HTTP (https://github.com/JelmerT/coap-rd/blob/master/requesthandlers.js#L82) with transitions:
See https://github.com/nerdfiles/notes-cli/blob/master/cli/server/index.js#L19-L56 and https://github.com/nerdfiles/notes-cli/blob/master/cli/server/index.js#L69-L73
Top comments (0)