Skip to main content
Glama
messages.ts2.26 kB
import { action, mutation } from "./_generated/server"; import { query } from "./_generated/server"; import { components } from "./_generated/api"; import { Doc } from "./_generated/dataModel"; import { v } from "convex/values"; import type { ComponentApi } from "@convex-dev/waitlist/_generated/component.js"; const waitlist = components.waitlist satisfies ComponentApi; export const list = query({ args: {}, handler: async (ctx): Promise<Doc<"messages">[]> => { const result = await ctx.runQuery(waitlist.index.sayGoodbyeFromQuery, {}); console.log(result); return await ctx.db.query("messages").collect(); }, }); export const send = mutation({ handler: async (ctx, { body, author }: { body: string; author: string }) => { const message = { body, author }; await ctx.db.insert("messages", message); }, }); export const save = action({ args: { message: v.string() }, returns: v.string(), handler: async (ctx, { message }) => { return ctx.runAction(waitlist.index.storeInFile, { message }); }, }); export const componentTest = action({ args: {}, handler: async (ctx) => { console.log("calling into component..."); const response = await ctx.runAction(waitlist.index.repeatMessage, { message: "hello", n: 3, }); console.log("received response from component:", response); return response; }, }); export const scheduleSendWaitlistMessage = mutation({ args: {}, handler: async (ctx) => { console.log("scheduling message"); await ctx.scheduler.runAfter(30 * 1000, waitlist.index.scheduleMessage, {}); console.log(await ctx.db.system.query("_scheduled_functions").collect()); return "scheduled"; }, }); export const testPartialRollback = mutation({ args: {}, handler: async (ctx) => { const initialResult = await ctx.runQuery(waitlist.index.latestWrite, {}); console.log(initialResult); await ctx.runMutation(waitlist.index.writeSuccessfully, { text: "hello", }); try { await ctx.runMutation(waitlist.index.writeThenFail, { text: "world", }); } catch (e) { console.log("caught error", e); } const result = await ctx.runQuery(waitlist.index.latestWrite, {}); console.log(result); }, });

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/get-convex/convex-backend'

If you have feedback or need assistance with the MCP directory API, please join our Discord server