samlax12 commited on
Commit
e448978
·
verified ·
1 Parent(s): 7f95874

Upload 18 files

Browse files
controllers/promptGroupController.js CHANGED
@@ -1,6 +1,5 @@
1
  const asyncHandler = require('express-async-handler');
2
  const PromptGroup = require('../models/PromptGroup');
3
- const logger = require('../utils/logger');
4
 
5
  // @desc 获取所有提示词组
6
  // @route GET /api/prompt-groups
@@ -181,40 +180,15 @@ const deletePrompt = asyncHandler(async (req, res) => {
181
  // @route POST /api/prompt-groups/:id/dsl-files
182
  // @access Private
183
  const addDslFileToGroup = asyncHandler(async (req, res) => {
184
- try {
185
- const { name, fileData, mimeType } = req.body;
186
-
187
- logger.info(`正在添加DSL文件: ${name}`);
188
-
189
- // 验证请求数据
190
- if (!name || !fileData) {
191
- res.status(400);
192
- throw new Error('文件名和文件数据是必需的');
193
- }
194
-
195
- const promptGroup = await PromptGroup.findById(req.params.id);
196
 
197
- if (!promptGroup) {
198
- res.status(404);
199
- throw new Error('提示词组未找到');
200
- }
201
-
202
- // 验证文件数据格式
203
- if (typeof fileData !== 'string') {
204
- res.status(400);
205
- throw new Error('文件数据必须是字符串');
206
- }
207
-
208
- // 确保文件名以 .yml 结尾
209
- let fileName = name;
210
- if (!fileName.toLowerCase().endsWith('.yml')) {
211
- fileName = fileName.replace(/\.[^/.]+$/, '') + '.yml';
212
- }
213
 
 
214
  const newDslFile = {
215
- name: fileName,
216
  fileData,
217
- mimeType: mimeType || 'application/x-yaml',
218
  uploadedAt: new Date(),
219
  };
220
 
@@ -222,67 +196,10 @@ const addDslFileToGroup = asyncHandler(async (req, res) => {
222
  promptGroup.updatedAt = new Date();
223
 
224
  const updatedPromptGroup = await promptGroup.save();
225
- logger.info(`DSL文件添加成功: ${fileName}`);
226
-
227
  res.status(201).json(updatedPromptGroup.dslFiles[updatedPromptGroup.dslFiles.length - 1]);
228
- } catch (error) {
229
- logger.error(`添加DSL文件时出错: ${error.message}`);
230
- if (!res.statusCode || res.statusCode === 200) {
231
- res.status(500);
232
- }
233
- throw error;
234
- }
235
- });
236
-
237
- // @desc 更新DSL文件
238
- // @route PUT /api/prompt-groups/:id/dsl-files/:fileId
239
- // @access Private
240
- const updateDslFile = asyncHandler(async (req, res) => {
241
- try {
242
- const { name, fileData, mimeType } = req.body;
243
-
244
- logger.info(`正在更新DSL文件: ${req.params.fileId}`);
245
-
246
- const promptGroup = await PromptGroup.findById(req.params.id);
247
-
248
- if (!promptGroup) {
249
- res.status(404);
250
- throw new Error('提示词组未找到');
251
- }
252
-
253
- const fileIndex = promptGroup.dslFiles.findIndex(
254
- (f) => f._id.toString() === req.params.fileId
255
- );
256
-
257
- if (fileIndex === -1) {
258
- res.status(404);
259
- throw new Error('DSL文件未找到');
260
- }
261
-
262
- // 确保文件名以 .yml 结尾
263
- let fileName = name || promptGroup.dslFiles[fileIndex].name;
264
- if (!fileName.toLowerCase().endsWith('.yml')) {
265
- fileName = fileName.replace(/\.[^/.]+$/, '') + '.yml';
266
- }
267
-
268
- // 更新文件属性
269
- if (name) promptGroup.dslFiles[fileIndex].name = fileName;
270
- if (fileData) promptGroup.dslFiles[fileIndex].fileData = fileData;
271
- if (mimeType) promptGroup.dslFiles[fileIndex].mimeType = mimeType;
272
-
273
- // 更新时间
274
- promptGroup.updatedAt = new Date();
275
-
276
- const updatedPromptGroup = await promptGroup.save();
277
- logger.info(`DSL文件更新成功: ${fileName}`);
278
-
279
- res.json(updatedPromptGroup.dslFiles[fileIndex]);
280
- } catch (error) {
281
- logger.error(`更新DSL文件时出错: ${error.message}`);
282
- if (!res.statusCode || res.statusCode === 200) {
283
- res.status(500);
284
- }
285
- throw error;
286
  }
287
  });
288
 
@@ -325,6 +242,5 @@ module.exports = {
325
  updatePrompt,
326
  deletePrompt,
327
  addDslFileToGroup,
328
- updateDslFile,
329
  deleteDslFile,
330
  };
 
1
  const asyncHandler = require('express-async-handler');
2
  const PromptGroup = require('../models/PromptGroup');
 
3
 
4
  // @desc 获取所有提示词组
5
  // @route GET /api/prompt-groups
 
180
  // @route POST /api/prompt-groups/:id/dsl-files
181
  // @access Private
182
  const addDslFileToGroup = asyncHandler(async (req, res) => {
183
+ const { name, fileData, mimeType } = req.body;
 
 
 
 
 
 
 
 
 
 
 
184
 
185
+ const promptGroup = await PromptGroup.findById(req.params.id);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
186
 
187
+ if (promptGroup) {
188
  const newDslFile = {
189
+ name,
190
  fileData,
191
+ mimeType: mimeType || 'application/octet-stream',
192
  uploadedAt: new Date(),
193
  };
194
 
 
196
  promptGroup.updatedAt = new Date();
197
 
198
  const updatedPromptGroup = await promptGroup.save();
 
 
199
  res.status(201).json(updatedPromptGroup.dslFiles[updatedPromptGroup.dslFiles.length - 1]);
200
+ } else {
201
+ res.status(404);
202
+ throw new Error('提示词组未找到');
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
203
  }
204
  });
205
 
 
242
  updatePrompt,
243
  deletePrompt,
244
  addDslFileToGroup,
 
245
  deleteDslFile,
246
  };
routes/promptGroupRoutes.js CHANGED
@@ -10,7 +10,6 @@ const {
10
  updatePrompt,
11
  deletePrompt,
12
  addDslFileToGroup,
13
- updateDslFile,
14
  deleteDslFile,
15
  } = require('../controllers/promptGroupController');
16
  const { protect } = require('../middleware/auth');
@@ -38,7 +37,6 @@ router.route('/:id/dsl-files')
38
  .post(protect, addDslFileToGroup);
39
 
40
  router.route('/:id/dsl-files/:fileId')
41
- .put(protect, updateDslFile)
42
  .delete(protect, deleteDslFile);
43
 
44
  module.exports = router;
 
10
  updatePrompt,
11
  deletePrompt,
12
  addDslFileToGroup,
 
13
  deleteDslFile,
14
  } = require('../controllers/promptGroupController');
15
  const { protect } = require('../middleware/auth');
 
37
  .post(protect, addDslFileToGroup);
38
 
39
  router.route('/:id/dsl-files/:fileId')
 
40
  .delete(protect, deleteDslFile);
41
 
42
  module.exports = router;