You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
const prisma = require("../utils/prisma");
const WorkspaceSuggestedMessages = { get: async function (clause = {}) { try { const message = await prisma.workspace_suggested_messages.findFirst({ where: clause, }); return message || null; } catch (error) { console.error(error.message); return null; } },
where: async function (clause = {}, limit) { try { const messages = await prisma.workspace_suggested_messages.findMany({ where: clause, take: limit || undefined, }); return messages; } catch (error) { console.error(error.message); return []; } },
saveAll: async function (messages, workspaceSlug) { try { const workspace = await prisma.workspaces.findUnique({ where: { slug: workspaceSlug }, });
if (!workspace) throw new Error("Workspace not found");
// Delete all existing messages for the workspace
await prisma.workspace_suggested_messages.deleteMany({ where: { workspaceId: workspace.id }, });
// Create new messages
// We create each message individually because prisma
// with sqlite does not support createMany()
for (const message of messages) { await prisma.workspace_suggested_messages.create({ data: { workspaceId: workspace.id, heading: message.heading, message: message.message, }, }); } } catch (error) { console.error("Failed to save all messages", error.message); } },
getMessages: async function (workspaceSlug) { try { const workspace = await prisma.workspaces.findUnique({ where: { slug: workspaceSlug }, });
if (!workspace) throw new Error("Workspace not found");
const messages = await prisma.workspace_suggested_messages.findMany({ where: { workspaceId: workspace.id }, orderBy: { createdAt: "asc" }, });
return messages.map((msg) => ({ heading: msg.heading, message: msg.message, })); } catch (error) { console.error("Failed to get all messages", error.message); return []; } },};
module.exports.WorkspaceSuggestedMessages = WorkspaceSuggestedMessages;
|