import { mutation, query } from './_generated/server'; import { ConvexError, v } from 'convex/values'; import { getAuthUserId } from '@convex-dev/auth/server'; export const generateUploadUrl = mutation(async (ctx) => { const userId = await getAuthUserId(ctx); if (!userId) throw new ConvexError('Not authenticated.'); return await ctx.storage.generateUploadUrl(); }); export const getImageUrl = query({ args: { storageId: v.id('_storage') }, handler: async (ctx, { storageId }) => { const url = await ctx.storage.getUrl(storageId); return url ?? null; }, });