mirror of
https://github.com/Mintplex-Labs/anything-llm
synced 2026-05-05 06:41:57 +02:00
[FEAT] Edit message button (#1392)
* WIP edit message feature * WIP edit message * WIP editing messages feature * Fix PFPs TODO: Fix default user profile image Add User and Assistant workspace response * unset PFP changes for later PR --------- Co-authored-by: timothycarambat <rambat1010@gmail.com>
This commit is contained in:
@@ -1,4 +1,9 @@
|
||||
const { multiUserMode, userFromSession, reqBody } = require("../utils/http");
|
||||
const {
|
||||
multiUserMode,
|
||||
userFromSession,
|
||||
reqBody,
|
||||
safeJsonParse,
|
||||
} = require("../utils/http");
|
||||
const { validatedRequest } = require("../utils/middleware/validatedRequest");
|
||||
const { Telemetry } = require("../models/telemetry");
|
||||
const {
|
||||
@@ -168,6 +173,77 @@ function workspaceThreadEndpoints(app) {
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
app.delete(
|
||||
"/workspace/:slug/thread/:threadSlug/delete-edited-chats",
|
||||
[
|
||||
validatedRequest,
|
||||
flexUserRoleValid([ROLES.all]),
|
||||
validWorkspaceAndThreadSlug,
|
||||
],
|
||||
async (request, response) => {
|
||||
try {
|
||||
const { startingId } = reqBody(request);
|
||||
const user = await userFromSession(request, response);
|
||||
const workspace = response.locals.workspace;
|
||||
const thread = response.locals.thread;
|
||||
|
||||
await WorkspaceChats.delete({
|
||||
workspaceId: Number(workspace.id),
|
||||
thread_id: Number(thread.id),
|
||||
user_id: user?.id,
|
||||
id: { gte: Number(startingId) },
|
||||
});
|
||||
|
||||
response.sendStatus(200).end();
|
||||
} catch (e) {
|
||||
console.log(e.message, e);
|
||||
response.sendStatus(500).end();
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
app.post(
|
||||
"/workspace/:slug/thread/:threadSlug/update-chat",
|
||||
[
|
||||
validatedRequest,
|
||||
flexUserRoleValid([ROLES.all]),
|
||||
validWorkspaceAndThreadSlug,
|
||||
],
|
||||
async (request, response) => {
|
||||
try {
|
||||
const { chatId, newText = null } = reqBody(request);
|
||||
if (!newText || !String(newText).trim())
|
||||
throw new Error("Cannot save empty response");
|
||||
|
||||
const user = await userFromSession(request, response);
|
||||
const workspace = response.locals.workspace;
|
||||
const thread = response.locals.thread;
|
||||
const existingChat = await WorkspaceChats.get({
|
||||
workspaceId: workspace.id,
|
||||
thread_id: thread.id,
|
||||
user_id: user?.id,
|
||||
id: Number(chatId),
|
||||
});
|
||||
if (!existingChat) throw new Error("Invalid chat.");
|
||||
|
||||
const chatResponse = safeJsonParse(existingChat.response, null);
|
||||
if (!chatResponse) throw new Error("Failed to parse chat response");
|
||||
|
||||
await WorkspaceChats._update(existingChat.id, {
|
||||
response: JSON.stringify({
|
||||
...chatResponse,
|
||||
text: String(newText),
|
||||
}),
|
||||
});
|
||||
|
||||
response.sendStatus(200).end();
|
||||
} catch (e) {
|
||||
console.log(e.message, e);
|
||||
response.sendStatus(500).end();
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
module.exports = { workspaceThreadEndpoints };
|
||||
|
||||
Reference in New Issue
Block a user