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.
This commit is contained in:
2025-11-04 03:46:50 -03:00
parent ccc8c5d5f4
commit bc3c7df00f
2 changed files with 22 additions and 6 deletions

View File

@@ -1173,9 +1173,9 @@
class="btn btn-xs btn-ghost" class="btn btn-xs btn-ghost"
onclick={async () => { onclick={async () => {
try { try {
const url = await client.storage.getUrl( const url = await client.query(api.atestadosLicencas.obterUrlDocumento, {
atestado.documentoId as any storageId: atestado.documentoId as any,
); });
if (url) { if (url) {
window.open(url, "_blank"); window.open(url, "_blank");
} else { } else {
@@ -1240,9 +1240,9 @@
class="btn btn-xs btn-ghost" class="btn btn-xs btn-ghost"
onclick={async () => { onclick={async () => {
try { try {
const url = await client.storage.getUrl( const url = await client.query(api.atestadosLicencas.obterUrlDocumento, {
licenca.documentoId as any storageId: licenca.documentoId as any,
); });
if (url) { if (url) {
window.open(url, "_blank"); window.open(url, "_blank");
} else { } else {

View File

@@ -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 * Criar atestado médico
*/ */