46 lines
940 B
TypeScript
46 lines
940 B
TypeScript
import { mutation, query } from "./_generated/server";
|
|
import { v } from "convex/values";
|
|
|
|
export const getLatestSnapshot = query({
|
|
args: {},
|
|
handler: async (ctx) => {
|
|
const latest = await ctx.db
|
|
.query("state_snapshots")
|
|
.order("desc")
|
|
.first();
|
|
|
|
return latest
|
|
? {
|
|
snapshot: latest.snapshot,
|
|
updatedAt: latest.updatedAt,
|
|
}
|
|
: null;
|
|
},
|
|
});
|
|
|
|
export const saveSnapshot = mutation({
|
|
args: {
|
|
snapshot: v.any(),
|
|
updatedAt: v.string(),
|
|
},
|
|
handler: async (ctx, args) => {
|
|
const latest = await ctx.db
|
|
.query("state_snapshots")
|
|
.order("desc")
|
|
.first();
|
|
|
|
if (latest) {
|
|
await ctx.db.patch(latest._id, {
|
|
snapshot: args.snapshot,
|
|
updatedAt: args.updatedAt,
|
|
});
|
|
return latest._id;
|
|
}
|
|
|
|
return ctx.db.insert("state_snapshots", {
|
|
snapshot: args.snapshot,
|
|
updatedAt: args.updatedAt,
|
|
});
|
|
},
|
|
});
|