Extract API endpoints for quick replies
This commit is contained in:
parent
d448d4f65b
commit
7dcd39c806
|
@ -177,7 +177,7 @@ export class QuickReplySet {
|
||||||
|
|
||||||
|
|
||||||
async performSave() {
|
async performSave() {
|
||||||
const response = await fetch('/savequickreply', {
|
const response = await fetch('/api/quick-replies/save', {
|
||||||
method: 'POST',
|
method: 'POST',
|
||||||
headers: getRequestHeaders(),
|
headers: getRequestHeaders(),
|
||||||
body: JSON.stringify(this),
|
body: JSON.stringify(this),
|
||||||
|
@ -191,7 +191,7 @@ export class QuickReplySet {
|
||||||
}
|
}
|
||||||
|
|
||||||
async delete() {
|
async delete() {
|
||||||
const response = await fetch('/deletequickreply', {
|
const response = await fetch('/api/quick-replies/delete', {
|
||||||
method: 'POST',
|
method: 'POST',
|
||||||
headers: getRequestHeaders(),
|
headers: getRequestHeaders(),
|
||||||
body: JSON.stringify(this),
|
body: JSON.stringify(this),
|
||||||
|
|
33
server.js
33
server.js
|
@ -244,32 +244,6 @@ app.post('/savemovingui', jsonParser, (request, response) => {
|
||||||
return response.sendStatus(200);
|
return response.sendStatus(200);
|
||||||
});
|
});
|
||||||
|
|
||||||
app.post('/savequickreply', jsonParser, (request, response) => {
|
|
||||||
if (!request.body || !request.body.name) {
|
|
||||||
return response.sendStatus(400);
|
|
||||||
}
|
|
||||||
|
|
||||||
const filename = path.join(DIRECTORIES.quickreplies, sanitize(request.body.name) + '.json');
|
|
||||||
writeFileAtomicSync(filename, JSON.stringify(request.body, null, 4), 'utf8');
|
|
||||||
|
|
||||||
return response.sendStatus(200);
|
|
||||||
});
|
|
||||||
|
|
||||||
app.post('/deletequickreply', jsonParser, (request, response) => {
|
|
||||||
if (!request.body || !request.body.name) {
|
|
||||||
return response.sendStatus(400);
|
|
||||||
}
|
|
||||||
|
|
||||||
const filename = path.join(DIRECTORIES.quickreplies, sanitize(request.body.name) + '.json');
|
|
||||||
if (fs.existsSync(filename)) {
|
|
||||||
fs.unlinkSync(filename);
|
|
||||||
}
|
|
||||||
|
|
||||||
return response.sendStatus(200);
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Ensure the directory for the provided file path exists.
|
* Ensure the directory for the provided file path exists.
|
||||||
* If not, it will recursively create the directory.
|
* If not, it will recursively create the directory.
|
||||||
|
@ -444,6 +418,13 @@ redirect('/getuseravatars', '/api/avatars/get');
|
||||||
redirect('/deleteuseravatar', '/api/avatars/delete');
|
redirect('/deleteuseravatar', '/api/avatars/delete');
|
||||||
redirect('/uploaduseravatar', '/api/avatars/upload');
|
redirect('/uploaduseravatar', '/api/avatars/upload');
|
||||||
|
|
||||||
|
// Redirect deprecated quick reply endpoints
|
||||||
|
redirect('/deletequickreply', '/api/quick-replies/delete');
|
||||||
|
redirect('/savequickreply', '/api/quick-replies/save');
|
||||||
|
|
||||||
|
// Quick reply management
|
||||||
|
app.use('/api/quick-replies', require('./src/endpoints/quick-replies').router);
|
||||||
|
|
||||||
// Avatar management
|
// Avatar management
|
||||||
app.use('/api/avatars', require('./src/endpoints/avatars').router);
|
app.use('/api/avatars', require('./src/endpoints/avatars').router);
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,36 @@
|
||||||
|
const fs = require('fs');
|
||||||
|
const path = require('path');
|
||||||
|
const express = require('express');
|
||||||
|
const sanitize = require('sanitize-filename');
|
||||||
|
const writeFileAtomicSync = require('write-file-atomic').sync;
|
||||||
|
|
||||||
|
const { jsonParser } = require('../express-common');
|
||||||
|
const { DIRECTORIES } = require('../constants');
|
||||||
|
|
||||||
|
const router = express.Router();
|
||||||
|
|
||||||
|
router.post('/save', jsonParser, (request, response) => {
|
||||||
|
if (!request.body || !request.body.name) {
|
||||||
|
return response.sendStatus(400);
|
||||||
|
}
|
||||||
|
|
||||||
|
const filename = path.join(DIRECTORIES.quickreplies, sanitize(request.body.name) + '.json');
|
||||||
|
writeFileAtomicSync(filename, JSON.stringify(request.body, null, 4), 'utf8');
|
||||||
|
|
||||||
|
return response.sendStatus(200);
|
||||||
|
});
|
||||||
|
|
||||||
|
router.post('/delete', jsonParser, (request, response) => {
|
||||||
|
if (!request.body || !request.body.name) {
|
||||||
|
return response.sendStatus(400);
|
||||||
|
}
|
||||||
|
|
||||||
|
const filename = path.join(DIRECTORIES.quickreplies, sanitize(request.body.name) + '.json');
|
||||||
|
if (fs.existsSync(filename)) {
|
||||||
|
fs.unlinkSync(filename);
|
||||||
|
}
|
||||||
|
|
||||||
|
return response.sendStatus(200);
|
||||||
|
});
|
||||||
|
|
||||||
|
module.exports = { router };
|
Loading…
Reference in New Issue