| 1 | import fs from 'node:fs'; |
| 2 | import path from 'node:path'; |
| 3 | |
| 4 | import express from 'express'; |
| 5 | import sanitize from 'sanitize-filename'; |
| 6 | import { sync as writeFileAtomicSync } from 'write-file-atomic'; |
| 7 | |
| 8 | export const router = express.Router(); |
| 9 | |
| 10 | router.post('/save', (request, response) => { |
| 11 | if (!request.body || !request.body.name) { |
| 12 | return response.sendStatus(400); |
| 13 | } |
| 14 | |
| 15 | const filename = path.join(request.user.directories.quickreplies, sanitize(`${request.body.name}.json`)); |
| 16 | writeFileAtomicSync(filename, JSON.stringify(request.body, null, 4), 'utf8'); |
| 17 | |
| 18 | return response.sendStatus(200); |
| 19 | }); |
| 20 | |
| 21 | router.post('/delete', (request, response) => { |
| 22 | if (!request.body || !request.body.name) { |
| 23 | return response.sendStatus(400); |
| 24 | } |
| 25 | |
| 26 | const filename = path.join(request.user.directories.quickreplies, sanitize(`${request.body.name}.json`)); |
| 27 | if (fs.existsSync(filename)) { |
| 28 | fs.unlinkSync(filename); |
| 29 | } |
| 30 | |
| 31 | return response.sendStatus(200); |
| 32 | }); |