/**
* Get a signed URL for the project's logo asset, if present
*/
export const getLogoUrl = query({
args: { projectId: v.id('projects') },
returns: v.union(v.string(), v.null()),
handler: async (ctx, { projectId }) => {
const context = await getCurrentProjectContext(ctx, projectId)
if (!context.logoAsset) return null
return await ctx.runQuery(internal.projects.projectContext._internalGetLogoUrl, { logoAsset: context.logoAsset })
},
})
export const _internalGetLogoUrl = internalQuery({
args: { logoAsset: v.id('_storage') },
returns: v.union(v.string(), v.null()),
handler: async (ctx, { logoAsset }) => {
const url = await ctx.storage.getUrl(logoAsset)
return url ?? null
},
})
/**
* Get a signed URL for the project's logo asset, if present
*/
export const getLogoUrl = query({
args: { projectId: v.id('projects') },
returns: v.union(v.string(), v.null()),
handler: async (ctx, { projectId }) => {
const context = await getCurrentProjectContext(ctx, projectId)
if (!context.logoAsset) return null
return await ctx.runQuery(internal.projects.projectContext._internalGetLogoUrl, { logoAsset: context.logoAsset })
},
})
export const _internalGetLogoUrl = internalQuery({
args: { logoAsset: v.id('_storage') },
returns: v.union(v.string(), v.null()),
handler: async (ctx, { logoAsset }) => {
const url = await ctx.storage.getUrl(logoAsset)
return url ?? null
},
})