messages.ts•780 B
import { v } from "convex/values";
import { mutation } from "./_generated/server";
import { query } from "./_generated/server";
import { internal } from "./_generated/api";
export const list = query({
args: {
sessionId: v.string(),
},
handler: async (ctx, args) => {
return await ctx.db
.query("messages")
.withIndex("bySessionId", (q) => q.eq("sessionId", args.sessionId))
.collect();
},
});
export const send = mutation({
args: {
message: v.string(),
sessionId: v.string(),
},
handler: async (ctx, { message, sessionId }) => {
await ctx.db.insert("messages", {
isViewer: true,
text: message,
sessionId,
});
await ctx.scheduler.runAfter(0, internal.serve.answer, {
sessionId,
});
},
});