Skip to main content
Glama
reportPosition.ts1.39 kB
import { Id } from "./_generated/dataModel"; import { mutation } from "./_generated/server"; import { v } from "convex/values"; export const reportContentiously = mutation({ args: { x: v.number(), y: v.number(), ts: v.number(), session: v.string(), id: v.optional(v.any()), }, handler: async ({ db }, { x, y, ts, session }): Promise<Id<"positions">> => { let pos = await db .query("positions") .filter((q) => q.eq(q.field("session"), session)) .first(); if (pos === null) { pos = { session, x, y, clientSentTs: ts, serverSentTs: Date.now() }; return db.insert("positions", pos); } else { await db.patch(pos._id, { x, y, ts, serverSentTs: Date.now() }); return pos._id; } }, }); export const report = mutation({ args: { x: v.number(), y: v.number(), ts: v.number(), session: v.string(), id: v.union(v.id("positions"), v.null()), }, handler: async ( { db }, { x, y, ts, session, id }, ): Promise<Id<"positions">> => { let pos = null; if (id !== null) { pos = await db.get(id); } if (pos === null) { pos = { session, x, y, clientSentTs: ts, serverSentTs: Date.now() }; return await db.insert("positions", pos); } else { await db.patch(pos._id, { x, y, ts, serverSentTs: Date.now() }); return pos._id; } }, });

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