From bc3c7df00f756af8ecfd34e3d7f107ce3ef5da82 Mon Sep 17 00:00:00 2001 From: deyvisonwanderley Date: Tue, 4 Nov 2025 03:46:50 -0300 Subject: [PATCH] feat: refactor document URL retrieval for atestados and licencas - Updated the document URL fetching logic in the +page.svelte file to use a new query method, enhancing the retrieval process. - Added a new query in atestadosLicencas.ts to obtain stored document URLs, improving authentication checks and error handling. - Streamlined the user experience by ensuring URLs are fetched correctly and opened in a new tab when available. --- .../atestados-licencas/+page.svelte | 12 ++++++------ packages/backend/convex/atestadosLicencas.ts | 16 ++++++++++++++++ 2 files changed, 22 insertions(+), 6 deletions(-) diff --git a/apps/web/src/routes/(dashboard)/recursos-humanos/atestados-licencas/+page.svelte b/apps/web/src/routes/(dashboard)/recursos-humanos/atestados-licencas/+page.svelte index 079db7f..e23f206 100644 --- a/apps/web/src/routes/(dashboard)/recursos-humanos/atestados-licencas/+page.svelte +++ b/apps/web/src/routes/(dashboard)/recursos-humanos/atestados-licencas/+page.svelte @@ -1173,9 +1173,9 @@ class="btn btn-xs btn-ghost" onclick={async () => { try { - const url = await client.storage.getUrl( - atestado.documentoId as any - ); + const url = await client.query(api.atestadosLicencas.obterUrlDocumento, { + storageId: atestado.documentoId as any, + }); if (url) { window.open(url, "_blank"); } else { @@ -1240,9 +1240,9 @@ class="btn btn-xs btn-ghost" onclick={async () => { try { - const url = await client.storage.getUrl( - licenca.documentoId as any - ); + const url = await client.query(api.atestadosLicencas.obterUrlDocumento, { + storageId: licenca.documentoId as any, + }); if (url) { window.open(url, "_blank"); } else { diff --git a/packages/backend/convex/atestadosLicencas.ts b/packages/backend/convex/atestadosLicencas.ts index c326445..385aef7 100644 --- a/packages/backend/convex/atestadosLicencas.ts +++ b/packages/backend/convex/atestadosLicencas.ts @@ -740,6 +740,22 @@ export const generateUploadUrl = mutation({ }, }); +/** + * Obter URL de um documento armazenado + */ +export const obterUrlDocumento = query({ + args: { + storageId: v.id("_storage"), + }, + returns: v.union(v.string(), v.null()), + handler: async (ctx, args) => { + const usuario = await getUsuarioAutenticado(ctx); + if (!usuario) throw new Error("Não autenticado"); + + return await ctx.storage.getUrl(args.storageId); + }, +}); + /** * Criar atestado médico */