From d83043d8f24c34340a927bccdbb3fc49359a1987 Mon Sep 17 00:00:00 2001 From: k Date: Mon, 4 Nov 2024 12:44:15 +0100 Subject: [PATCH] server: readd content disposition attachement if ext present --- server/src/api/handlers/response.rs | 9 ++++++++- server/src/header_map.rs | 6 ++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/server/src/api/handlers/response.rs b/server/src/api/handlers/response.rs index 24e045739..edac89415 100644 --- a/server/src/api/handlers/response.rs +++ b/server/src/api/handlers/response.rs @@ -150,7 +150,14 @@ pub fn update_reponse_headers( headers.insert_cache_control_revalidate(max_age, stale_while_revalidate); match extension { - Some(Extension::CSV) => headers.insert_content_type_text_csv(), + Some(extension) => { + headers.insert_content_disposition_attachment(); + + match extension { + Extension::CSV => headers.insert_content_type_text_csv(), + Extension::JSON => headers.insert_content_type_application_json(), + } + } _ => headers.insert_content_type_application_json(), } diff --git a/server/src/header_map.rs b/server/src/header_map.rs index 772380953..f1af0527b 100644 --- a/server/src/header_map.rs +++ b/server/src/header_map.rs @@ -34,6 +34,8 @@ pub trait HeaderMapUtils { fn insert_cache_control_revalidate(&mut self, max_age: u64, stale_while_revalidate: u64); fn insert_last_modified(&mut self, date: DateTime); + fn insert_content_disposition_attachment(&mut self); + fn insert_content_type(&mut self, path: &Path); fn insert_content_type_image_icon(&mut self); fn insert_content_type_image_jpeg(&mut self); @@ -88,6 +90,10 @@ impl HeaderMapUtils for HeaderMap { ); } + fn insert_content_disposition_attachment(&mut self) { + self.insert(header::CONTENT_DISPOSITION, "attachment".parse().unwrap()); + } + fn insert_cache_control_revalidate(&mut self, max_age: u64, stale_while_revalidate: u64) { self.insert( header::CACHE_CONTROL,