Merge pull request #1460 from valadaptive/presets-router

Use Express router for presets endpoint
This commit is contained in:
Cohee
2023-12-04 23:53:58 +02:00
committed by GitHub
2 changed files with 86 additions and 91 deletions

View File

@@ -3582,7 +3582,7 @@ app.use('/api/openai', require('./src/endpoints/openai').router);
require('./src/endpoints/tokenizers').registerEndpoints(app, jsonParser); require('./src/endpoints/tokenizers').registerEndpoints(app, jsonParser);
// Preset management // Preset management
require('./src/endpoints/presets').registerEndpoints(app, jsonParser); app.use('/api/presets', require('./src/endpoints/presets').router);
// Secrets managemenet // Secrets managemenet
require('./src/endpoints/secrets').registerEndpoints(app, jsonParser); require('./src/endpoints/secrets').registerEndpoints(app, jsonParser);

View File

@@ -1,9 +1,11 @@
const fs = require('fs'); const fs = require('fs');
const path = require('path'); const path = require('path');
const express = require('express');
const sanitize = require('sanitize-filename'); const sanitize = require('sanitize-filename');
const writeFileAtomicSync = require('write-file-atomic').sync; const writeFileAtomicSync = require('write-file-atomic').sync;
const { DIRECTORIES } = require('../constants'); const { DIRECTORIES } = require('../constants');
const { getDefaultPresetFile, getDefaultPresets } = require('./content-manager'); const { getDefaultPresetFile, getDefaultPresets } = require('./content-manager');
const { jsonParser } = require('../express-common');
/** /**
* Gets the folder and extension for the preset settings based on the API source ID. * Gets the folder and extension for the preset settings based on the API source ID.
@@ -30,13 +32,9 @@ function getPresetSettingsByAPI(apiId) {
} }
} }
/** const router = express.Router();
* Registers the preset management endpoints.
* @param {import('express').Express} app Express app router.post('/save', jsonParser, function (request, response) {
* @param {any} jsonParser JSON parser middleware
*/
function registerEndpoints(app, jsonParser) {
app.post('/api/presets/save', jsonParser, function (request, response) {
const name = sanitize(request.body.name); const name = sanitize(request.body.name);
if (!request.body.preset || !name) { if (!request.body.preset || !name) {
return response.sendStatus(400); return response.sendStatus(400);
@@ -52,9 +50,9 @@ function registerEndpoints(app, jsonParser) {
const fullpath = path.join(settings.folder, filename); const fullpath = path.join(settings.folder, filename);
writeFileAtomicSync(fullpath, JSON.stringify(request.body.preset, null, 4), 'utf-8'); writeFileAtomicSync(fullpath, JSON.stringify(request.body.preset, null, 4), 'utf-8');
return response.send({ name }); return response.send({ name });
}); });
app.post('/api/presets/delete', jsonParser, function (request, response) { router.post('/delete', jsonParser, function (request, response) {
const name = sanitize(request.body.name); const name = sanitize(request.body.name);
if (!name) { if (!name) {
return response.sendStatus(400); return response.sendStatus(400);
@@ -75,9 +73,9 @@ function registerEndpoints(app, jsonParser) {
} else { } else {
return response.sendStatus(404); return response.sendStatus(404);
} }
}); });
app.post('/api/presets/restore', jsonParser, function (request, response) { router.post('/restore', jsonParser, function (request, response) {
try { try {
const settings = getPresetSettingsByAPI(request.body.apiId); const settings = getPresetSettingsByAPI(request.body.apiId);
const name = sanitize(request.body.name); const name = sanitize(request.body.name);
@@ -97,10 +95,10 @@ function registerEndpoints(app, jsonParser) {
console.log(error); console.log(error);
return response.sendStatus(500); return response.sendStatus(500);
} }
}); });
// TODO: Merge with /api/presets/save // TODO: Merge with /api/presets/save
app.post('/api/presets/save-openai', jsonParser, function (request, response) { router.post('/save-openai', jsonParser, function (request, response) {
if (!request.body || typeof request.query.name !== 'string') return response.sendStatus(400); if (!request.body || typeof request.query.name !== 'string') return response.sendStatus(400);
const name = sanitize(request.query.name); const name = sanitize(request.query.name);
if (!name) return response.sendStatus(400); if (!name) return response.sendStatus(400);
@@ -109,10 +107,10 @@ function registerEndpoints(app, jsonParser) {
const fullpath = path.join(DIRECTORIES.openAI_Settings, filename); const fullpath = path.join(DIRECTORIES.openAI_Settings, filename);
writeFileAtomicSync(fullpath, JSON.stringify(request.body, null, 4), 'utf-8'); writeFileAtomicSync(fullpath, JSON.stringify(request.body, null, 4), 'utf-8');
return response.send({ name }); return response.send({ name });
}); });
// TODO: Merge with /api/presets/delete // TODO: Merge with /api/presets/delete
app.post('/api/presets/delete-openai', jsonParser, function (request, response) { router.post('/delete-openai', jsonParser, function (request, response) {
if (!request.body || !request.body.name) { if (!request.body || !request.body.name) {
return response.sendStatus(400); return response.sendStatus(400);
} }
@@ -126,9 +124,6 @@ function registerEndpoints(app, jsonParser) {
} }
return response.send({ error: true }); return response.send({ error: true });
}); });
}
module.exports = { module.exports = { router };
registerEndpoints,
};