33 lines
901 B
TypeScript
33 lines
901 B
TypeScript
import { mutation, query } from "./_generated/server";
|
|
import { components } from "./_generated/api";
|
|
import { v } from "convex/values";
|
|
import { Presence } from "@convex-dev/presence";
|
|
|
|
const presence = new Presence(components.presence);
|
|
|
|
export const heartbeat = mutation({
|
|
args: {
|
|
roomId: v.string(),
|
|
userId: v.string(),
|
|
sessionId: v.string(),
|
|
interval: v.number(),
|
|
},
|
|
handler: async (ctx, { roomId, userId, sessionId, interval }) => {
|
|
return await presence.heartbeat(ctx, roomId, userId, sessionId, interval);
|
|
},
|
|
});
|
|
|
|
export const list = query({
|
|
args: { roomToken: v.string() },
|
|
handler: async (ctx, { roomToken }) => {
|
|
return await presence.list(ctx, roomToken);
|
|
},
|
|
});
|
|
|
|
export const disconnect = mutation({
|
|
args: { sessionToken: v.string() },
|
|
handler: async (ctx, { sessionToken }) => {
|
|
return await presence.disconnect(ctx, sessionToken);
|
|
},
|
|
});
|