From aaa9d0812bca2eef2c59103f5d776dfb7dd596f2 Mon Sep 17 00:00:00 2001 From: ibra Date: Tue, 6 Jan 2026 23:43:09 -0500 Subject: [PATCH] Ultimate fix and tested ! You can download contract now. --- fresh.gen.ts | 12 +++++-- routes/(apps)/mobility/api/download/[id].ts | 36 +++++++++++++++++++++ 2 files changed, 46 insertions(+), 2 deletions(-) create mode 100644 routes/(apps)/mobility/api/download/[id].ts diff --git a/fresh.gen.ts b/fresh.gen.ts index eeb5302..7799cab 100644 --- a/fresh.gen.ts +++ b/fresh.gen.ts @@ -3,8 +3,9 @@ // This file is automatically updated during development when running `dev.ts`. import * as $_apps_layout from "./routes/(apps)/_layout.tsx"; -import * as $_apps_middleware from "./routes/(apps)/_middleware.ts"; -import * as $_apps_mobility_api_insert_mobility from "./routes/(apps)/mobility/api/insert_mobility.ts"; +import * as $_apps_mobility_api_download from "./routes/(apps)/mobility/api/download.ts"; +import * as $_apps_mobility_api_download_id_ from "./routes/(apps)/mobility/api/download/[id].ts"; +import * as $_apps_mobility_api_insert_mobility from "./routes/(apps)/mobility/api/insert-mobility.ts"; import * as $_apps_mobility_index from "./routes/(apps)/mobility/index.tsx"; import * as $_apps_mobility_partials_admin_edit_mobility from "./routes/(apps)/mobility/partials/(admin)/edit_mobility.tsx"; import * as $_apps_mobility_partials_index from "./routes/(apps)/mobility/partials/index.tsx"; @@ -40,8 +41,15 @@ import type { Manifest } from "$fresh/server.ts"; const manifest = { routes: { "./routes/(apps)/_layout.tsx": $_apps_layout, +<<<<<<< HEAD "./routes/(apps)/_middleware.ts": $_apps_middleware, "./routes/(apps)/mobility/api/insert_mobility.ts": +======= + "./routes/(apps)/mobility/api/download.ts": $_apps_mobility_api_download, + "./routes/(apps)/mobility/api/download/[id].ts": + $_apps_mobility_api_download_id_, + "./routes/(apps)/mobility/api/insert-mobility.ts": +>>>>>>> 4f1011d (Ultimate fix and tested ! You can download contract now.) $_apps_mobility_api_insert_mobility, "./routes/(apps)/mobility/index.tsx": $_apps_mobility_index, "./routes/(apps)/mobility/partials/(admin)/edit_mobility.tsx": diff --git a/routes/(apps)/mobility/api/download/[id].ts b/routes/(apps)/mobility/api/download/[id].ts new file mode 100644 index 0000000..885ee71 --- /dev/null +++ b/routes/(apps)/mobility/api/download/[id].ts @@ -0,0 +1,36 @@ +import { Handlers } from "$fresh/server.ts"; +import connect from "$root/databases/connect.ts"; + +export const handler: Handlers = { + async GET(_request, ctx) { + try { + const { id } = ctx.params; + + if (!id) { + return new Response("Invalid request: Missing ID", { status: 400 }); + } + + using connection = connect("mobility"); + + const query = connection.database.prepare( + "SELECT attestationFile FROM mobility WHERE id = ?", + ); + const result = query.get(id); + + if (!result || !result.attestationFile) { + return new Response("No file found for the given ID", { status: 404 }); + } + + return new Response(result.attestationFile, { + status: 200, + headers: { + "Content-Type": "application/pdf", + "Content-Disposition": `attachment; filename="attestation_${id}.pdf"`, + }, + }); + } catch (error) { + console.error("Error fetching file:", error); + return new Response("Failed to fetch file", { status: 500 }); + } + }, +};