Refactor OpenAI preset API endpoints to unify save and delete operations

b737af47b5483bb0d8b761e1941042e803f7ead5

Cohee <18619528+Cohee1207@users.noreply.github.com>

2 files changed, +14 -35Ignore whitespace
public/scripts/openai.js+14 -6
@@ -4009,10 +4009,14 @@ async function saveOpenAIPreset(name, settings, triggerUi = true) {
4009 n: settings.n,4009 n: settings.n,
4010 };4010 };
40114011
4012 const savePresetSettings = await fetch(`/api/presets/save-openai?name=${encodeURIComponent(name)}`, {4012 const savePresetSettings = await fetch('/api/presets/save', {
4013 method: 'POST',4013 method: 'POST',
4014 headers: getRequestHeaders(),4014 headers: getRequestHeaders(),
4015 body: JSON.stringify(presetBody),4015 body: JSON.stringify({
4016 apiId: 'openai',
4017 name: name,
4018 preset: presetBody,
4019 }),
4016 });4020 });
40174021
4018 if (savePresetSettings.ok) {4022 if (savePresetSettings.ok) {
@@ -4221,10 +4225,14 @@ async function onPresetImportFileChange(e) {
42214225
4222 await eventSource.emit(event_types.OAI_PRESET_IMPORT_READY, { data: presetBody, presetName: name });4226 await eventSource.emit(event_types.OAI_PRESET_IMPORT_READY, { data: presetBody, presetName: name });
42234227
4224 const savePresetSettings = await fetch(`/api/presets/save-openai?name=${encodeURIComponent(name)}`, {4228 const savePresetSettings = await fetch('/api/presets/save', {
4225 method: 'POST',4229 method: 'POST',
4226 headers: getRequestHeaders(),4230 headers: getRequestHeaders(),
4227 body: importedFile,4231 body: JSON.stringify({
4232 apiId: 'openai',
4233 name: name,
4234 preset: importedFile,
4235 }),
4228 });4236 });
42294237
4230 if (!savePresetSettings.ok) {4238 if (!savePresetSettings.ok) {
@@ -4367,10 +4375,10 @@ async function onDeletePresetClick() {
4367 $('#settings_preset_openai').trigger('change');4375 $('#settings_preset_openai').trigger('change');
4368 }4376 }
43694377
4370 const response = await fetch('/api/presets/delete-openai', {4378 const response = await fetch('/api/presets/delete', {
4371 method: 'POST',4379 method: 'POST',
4372 headers: getRequestHeaders(),4380 headers: getRequestHeaders(),
4373 body: JSON.stringify({ name: nameToDelete }),4381 body: JSON.stringify({ apiId: 'openai', name: nameToDelete }),
4374 });4382 });
43754383
4376 if (!response.ok) {4384 if (!response.ok) {
src/endpoints/presets.js+0 -29
@@ -101,32 +101,3 @@ router.post('/restore', function (request, response) {
101 return response.sendStatus(500);101 return response.sendStatus(500);
102 }102 }
103});103});
104
105// TODO: Merge with /api/presets/save
106router.post('/save-openai', function (request, response) {
107 if (!request.body || typeof request.query.name !== 'string') return response.sendStatus(400);
108 const name = sanitize(request.query.name);
109 if (!name) return response.sendStatus(400);
110
111 const fullpath = path.join(request.user.directories.openAI_Settings, `${name}.json`);
112 writeFileAtomicSync(fullpath, JSON.stringify(request.body, null, 4), 'utf-8');
113 return response.send({ name });
114});
115
116// TODO: Merge with /api/presets/delete
117router.post('/delete-openai', function (request, response) {
118 if (!request.body || !request.body.name) {
119 return response.sendStatus(400);
120 }
121
122 const name = sanitize(request.body.name);
123 if (!name) return response.sendStatus(400);
124 const pathToFile = path.join(request.user.directories.openAI_Settings, `${name}.json`);
125
126 if (fs.existsSync(pathToFile)) {
127 fs.unlinkSync(pathToFile);
128 return response.send({ ok: true });
129 }
130
131 return response.send({ error: true });
132});